{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Demo 02 互联网金融项目\n",
    "> 淘宝APP 用户行为数据 。 数据来源 阿里天池 [下载地址](https://tianchi.aliyun.com/dataset/dataDetail?dataId=649)\n",
    "\n",
    "UserBehavior.csv的字段\n",
    "* user_id User ID\tAn integer, the serialized ID that represents a user\n",
    "* item_id Item ID\tAn integer, the serialized ID that represents an item\n",
    "* Category ID\tAn integer, the serialized ID that represents the category which the corresponding item belongs to\n",
    "* behavior_type\tA string, enum-type from ('pv', 'buy', 'cart', 'fav')\n",
    "* Timestamp\tAn integer, the timestamp of the behavior\n",
    "\n",
    "\n",
    "### 分析指标\n",
    "  * 日PV 和 日UV 分析\n",
    "  * 付费率分析\n",
    "  * 复购率分析\n",
    "  * 漏斗流失分析\n",
    "  * 用户价值RFM分析\n",
    "\n",
    "### 分析思路\n",
    "\n",
    "  * 淘宝用户行为分析\n",
    "\n",
    "    * 用户行为分析\n",
    "      * 日访问\n",
    "      * 小时访问量\n",
    "      * 不同行为类型用户pv\n",
    "\n",
    "    * 用户消费行为\n",
    "       * 购买次数\n",
    "       * 日ARPU\n",
    "       * 付费率\n",
    "       * 同一时段用户消费次数\n",
    "\n",
    "    * 复购情况\n",
    "      * 所有复购时间，消费次数\n",
    "      * 不同用户复购时间\n",
    "\n",
    "    * 漏斗流失\n",
    "\n",
    "    * 用户行为与商品种类\n",
    "\n",
    "    * 二八理论\n",
    "\n",
    "    * 用户价值度RFM模型分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": true,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = 'SimHei'\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "sns.set_style('darkgrid')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "pycharm": {
     "is_executing": true,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "data = pd.read_csv(r'/home/heisai/data/UserBehavior.csv', dtype=str, header=None, names =['user_id','item_id','category_id','behavior_type','timestamp'])\n",
    "data_user = data.sample(frac=0.1, replace=False) # 抽样 20%\n",
    "del data\n",
    "# data_user.to_csv(r'/home/heisai/data/UserBehavior_part.csv')\n",
    "data_user.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 10015081 entries, 56141046 to 66596393\n",
      "Data columns (total 5 columns):\n",
      "user_id          object\n",
      "item_id          object\n",
      "category_id      object\n",
      "behavior_type    object\n",
      "timestamp        object\n",
      "dtypes: object(5)\n",
      "memory usage: 458.5+ MB\n"
     ]
    }
   ],
   "source": [
    "data_user.info() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>timestamp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>10015081</td>\n",
       "      <td>10015081</td>\n",
       "      <td>10015081</td>\n",
       "      <td>10015081</td>\n",
       "      <td>10015081</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unique</th>\n",
       "      <td>954544</td>\n",
       "      <td>1764359</td>\n",
       "      <td>8319</td>\n",
       "      <td>4</td>\n",
       "      <td>761153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>top</th>\n",
       "      <td>696044</td>\n",
       "      <td>812879</td>\n",
       "      <td>4756105</td>\n",
       "      <td>pv</td>\n",
       "      <td>1512222882</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>freq</th>\n",
       "      <td>102</td>\n",
       "      <td>3323</td>\n",
       "      <td>486505</td>\n",
       "      <td>8972190</td>\n",
       "      <td>55</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         user_id   item_id category_id behavior_type   timestamp\n",
       "count   10015081  10015081    10015081      10015081    10015081\n",
       "unique    954544   1764359        8319             4      761153\n",
       "top       696044    812879     4756105            pv  1512222882\n",
       "freq         102      3323      486505       8972190          55"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_user.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_id          0.0\n",
       "item_id          0.0\n",
       "category_id      0.0\n",
       "behavior_type    0.0\n",
       "timestamp        0.0\n",
       "dtype: float64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 缺失值分析\n",
    "data_user.apply(lambda x:sum(x.isnull())/len(x))\n",
    "\n",
    "# data_user.apply(lambda x:sum(x.isnull()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>56141046</th>\n",
       "      <td>823714</td>\n",
       "      <td>393355</td>\n",
       "      <td>4145813</td>\n",
       "      <td>pv</td>\n",
       "      <td>1512214933</td>\n",
       "      <td>2017-12-02 19:42:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77605254</th>\n",
       "      <td>883245</td>\n",
       "      <td>4232118</td>\n",
       "      <td>4580532</td>\n",
       "      <td>pv</td>\n",
       "      <td>1512297870</td>\n",
       "      <td>2017-12-03 18:44:30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27007009</th>\n",
       "      <td>404856</td>\n",
       "      <td>870467</td>\n",
       "      <td>570735</td>\n",
       "      <td>pv</td>\n",
       "      <td>1511831634</td>\n",
       "      <td>2017-11-28 09:13:54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>76757425</th>\n",
       "      <td>845272</td>\n",
       "      <td>1102579</td>\n",
       "      <td>1881956</td>\n",
       "      <td>cart</td>\n",
       "      <td>1512137657</td>\n",
       "      <td>2017-12-01 22:14:17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5715796</th>\n",
       "      <td>341816</td>\n",
       "      <td>5072398</td>\n",
       "      <td>708574</td>\n",
       "      <td>pv</td>\n",
       "      <td>1511859886</td>\n",
       "      <td>2017-11-28 17:04:46</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         user_id  item_id category_id behavior_type   timestamp  \\\n",
       "56141046  823714   393355     4145813            pv  1512214933   \n",
       "77605254  883245  4232118     4580532            pv  1512297870   \n",
       "27007009  404856   870467      570735            pv  1511831634   \n",
       "76757425  845272  1102579     1881956          cart  1512137657   \n",
       "5715796   341816  5072398      708574            pv  1511859886   \n",
       "\n",
       "                         time  \n",
       "56141046  2017-12-02 19:42:13  \n",
       "77605254  2017-12-03 18:44:30  \n",
       "27007009  2017-11-28 09:13:54  \n",
       "76757425  2017-12-01 22:14:17  \n",
       "5715796   2017-11-28 17:04:46  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import time\n",
    "data_user['time'] = data_user['timestamp'].apply(lambda x :time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime(int(x))))\n",
    "data_user.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>56141046</th>\n",
       "      <td>823714</td>\n",
       "      <td>393355</td>\n",
       "      <td>4145813</td>\n",
       "      <td>pv</td>\n",
       "      <td>1512214933</td>\n",
       "      <td>2017-12-02 19:42:13</td>\n",
       "      <td>2017-12-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77605254</th>\n",
       "      <td>883245</td>\n",
       "      <td>4232118</td>\n",
       "      <td>4580532</td>\n",
       "      <td>pv</td>\n",
       "      <td>1512297870</td>\n",
       "      <td>2017-12-03 18:44:30</td>\n",
       "      <td>2017-12-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27007009</th>\n",
       "      <td>404856</td>\n",
       "      <td>870467</td>\n",
       "      <td>570735</td>\n",
       "      <td>pv</td>\n",
       "      <td>1511831634</td>\n",
       "      <td>2017-11-28 09:13:54</td>\n",
       "      <td>2017-11-28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>76757425</th>\n",
       "      <td>845272</td>\n",
       "      <td>1102579</td>\n",
       "      <td>1881956</td>\n",
       "      <td>cart</td>\n",
       "      <td>1512137657</td>\n",
       "      <td>2017-12-01 22:14:17</td>\n",
       "      <td>2017-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5715796</th>\n",
       "      <td>341816</td>\n",
       "      <td>5072398</td>\n",
       "      <td>708574</td>\n",
       "      <td>pv</td>\n",
       "      <td>1511859886</td>\n",
       "      <td>2017-11-28 17:04:46</td>\n",
       "      <td>2017-11-28</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         user_id  item_id category_id behavior_type   timestamp  \\\n",
       "56141046  823714   393355     4145813            pv  1512214933   \n",
       "77605254  883245  4232118     4580532            pv  1512297870   \n",
       "27007009  404856   870467      570735            pv  1511831634   \n",
       "76757425  845272  1102579     1881956          cart  1512137657   \n",
       "5715796   341816  5072398      708574            pv  1511859886   \n",
       "\n",
       "                         time        date  \n",
       "56141046  2017-12-02 19:42:13  2017-12-02  \n",
       "77605254  2017-12-03 18:44:30  2017-12-03  \n",
       "27007009  2017-11-28 09:13:54  2017-11-28  \n",
       "76757425  2017-12-01 22:14:17  2017-12-01  \n",
       "5715796   2017-11-28 17:04:46  2017-11-28  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_user['date'] = data_user['time'].str[0:10]\n",
    "data_user.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_id          object\n",
       "item_id          object\n",
       "category_id      object\n",
       "behavior_type    object\n",
       "timestamp        object\n",
       "time             object\n",
       "date             object\n",
       "hour             object\n",
       "dtype: object"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_user['hour'] = data_user['time'].str[11:13]\n",
    "data_user.dtypes # 查看 time，date 格式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_id                  object\n",
       "item_id                  object\n",
       "category_id              object\n",
       "behavior_type            object\n",
       "timestamp                object\n",
       "time             datetime64[ns]\n",
       "date             datetime64[ns]\n",
       "hour                      int64\n",
       "dtype: object"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_user['date'] = pd.to_datetime(data_user['date'])\n",
    "data_user['time'] = pd.to_datetime(data_user['time'])\n",
    "data_user['hour'] = data_user['hour'].astype(int)\n",
    "data_user.dtypes # 查看 time，date 格式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "data_user.sort_values(by='time', ascending=True, inplace=True) # 根据time列做升序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>49210</td>\n",
       "      <td>3405132</td>\n",
       "      <td>3738615</td>\n",
       "      <td>pv</td>\n",
       "      <td>1905-07-13 22:38:49</td>\n",
       "      <td>1905-07-13</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>841275</td>\n",
       "      <td>4698139</td>\n",
       "      <td>2735466</td>\n",
       "      <td>pv</td>\n",
       "      <td>1920-10-10 03:25:14</td>\n",
       "      <td>1920-10-10</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>841275</td>\n",
       "      <td>3727636</td>\n",
       "      <td>2640118</td>\n",
       "      <td>pv</td>\n",
       "      <td>1920-10-10 22:20:12</td>\n",
       "      <td>1920-10-10</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>841275</td>\n",
       "      <td>668135</td>\n",
       "      <td>1320293</td>\n",
       "      <td>pv</td>\n",
       "      <td>1920-10-11 17:21:11</td>\n",
       "      <td>1920-10-11</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>841275</td>\n",
       "      <td>3285645</td>\n",
       "      <td>1320293</td>\n",
       "      <td>pv</td>\n",
       "      <td>1920-10-11 17:24:03</td>\n",
       "      <td>1920-10-11</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  user_id  item_id category_id behavior_type                time       date  \\\n",
       "0   49210  3405132     3738615            pv 1905-07-13 22:38:49 1905-07-13   \n",
       "1  841275  4698139     2735466            pv 1920-10-10 03:25:14 1920-10-10   \n",
       "2  841275  3727636     2640118            pv 1920-10-10 22:20:12 1920-10-10   \n",
       "3  841275   668135     1320293            pv 1920-10-11 17:21:11 1920-10-11   \n",
       "4  841275  3285645     1320293            pv 1920-10-11 17:24:03 1920-10-11   \n",
       "\n",
       "   hour  \n",
       "0    22  \n",
       "1     3  \n",
       "2    22  \n",
       "3    17  \n",
       "4    17  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_user.reset_index(drop=True, inplace=True) # 删除索引\n",
    "data_user.drop(['timestamp'], axis=1, inplace=True) # 删除某列\n",
    "data_user.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5294</th>\n",
       "      <td>401872</td>\n",
       "      <td>3835410</td>\n",
       "      <td>3189162</td>\n",
       "      <td>pv</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5295</th>\n",
       "      <td>869441</td>\n",
       "      <td>2202119</td>\n",
       "      <td>1787510</td>\n",
       "      <td>pv</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5296</th>\n",
       "      <td>62408</td>\n",
       "      <td>1169047</td>\n",
       "      <td>1573465</td>\n",
       "      <td>pv</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5297</th>\n",
       "      <td>115848</td>\n",
       "      <td>4963287</td>\n",
       "      <td>2735466</td>\n",
       "      <td>pv</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5298</th>\n",
       "      <td>902909</td>\n",
       "      <td>429708</td>\n",
       "      <td>1787510</td>\n",
       "      <td>cart</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     user_id  item_id category_id behavior_type                time  \\\n",
       "5294  401872  3835410     3189162            pv 2017-11-25 00:00:01   \n",
       "5295  869441  2202119     1787510            pv 2017-11-25 00:00:01   \n",
       "5296   62408  1169047     1573465            pv 2017-11-25 00:00:01   \n",
       "5297  115848  4963287     2735466            pv 2017-11-25 00:00:01   \n",
       "5298  902909   429708     1787510          cart 2017-11-25 00:00:01   \n",
       "\n",
       "           date  hour  \n",
       "5294 2017-11-25     0  \n",
       "5295 2017-11-25     0  \n",
       "5296 2017-11-25     0  \n",
       "5297 2017-11-25     0  \n",
       "5298 2017-11-25     0  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 本数据集包含了2017年11月25日至2017年12月3日之间，有行为的约一百万随机用户的所有行为\n",
    "# 删除2017年11月25日之前的数据\n",
    "data_user = data_user[(data_user['time'] > '2017-11-25 00:00:00') & (data_user['time'] < '2017-12-04 00:00:00')]\n",
    "data_user.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>behavior_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>10009787</td>\n",
       "      <td>10009787</td>\n",
       "      <td>10009787</td>\n",
       "      <td>10009787</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unique</th>\n",
       "      <td>954391</td>\n",
       "      <td>1763901</td>\n",
       "      <td>8319</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>top</th>\n",
       "      <td>696044</td>\n",
       "      <td>812879</td>\n",
       "      <td>4756105</td>\n",
       "      <td>pv</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>freq</th>\n",
       "      <td>102</td>\n",
       "      <td>3323</td>\n",
       "      <td>486322</td>\n",
       "      <td>8966898</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         user_id   item_id category_id behavior_type\n",
       "count   10009787  10009787    10009787      10009787\n",
       "unique    954391   1763901        8319             4\n",
       "top       696044    812879     4756105            pv\n",
       "freq         102      3323      486322       8966898"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_user.describe(include=['object']) # 字符型数据的统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "### 构建模型\n",
    "> 分析PV 页面浏览量, UV 用户浏览量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date\n",
       "2017-11-25    1041506\n",
       "2017-11-26    1066608\n",
       "2017-11-27    1010425\n",
       "2017-11-28     988806\n",
       "2017-11-29    1029016\n",
       "dtype: int64"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pv_daily = data_user.groupby('date').count()['user_id'].rename(cloumns={'user_id':'pv'})\n",
    "pv_daily.head(5)\n",
    "# 根据日期 计算pv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date\n",
       "2017-11-25    398251\n",
       "2017-11-26    408095\n",
       "2017-11-27    398621\n",
       "2017-11-28    395394\n",
       "2017-11-29    404646\n",
       "Name: user_id, dtype: int64"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "uv_daily = data_user.groupby('date')['user_id'].apply(lambda x: x.drop_duplicates().count())\n",
    "uv_daily.head(5)\n",
    "# 根据日期 计算 uv 采用 user_id去重"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pv</th>\n",
       "      <th>uv</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-11-25</th>\n",
       "      <td>1041506</td>\n",
       "      <td>398251</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-11-26</th>\n",
       "      <td>1066608</td>\n",
       "      <td>408095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-11-27</th>\n",
       "      <td>1010425</td>\n",
       "      <td>398621</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-11-28</th>\n",
       "      <td>988806</td>\n",
       "      <td>395394</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-11-29</th>\n",
       "      <td>1029016</td>\n",
       "      <td>404646</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 pv      uv\n",
       "date                       \n",
       "2017-11-25  1041506  398251\n",
       "2017-11-26  1066608  408095\n",
       "2017-11-27  1010425  398621\n",
       "2017-11-28   988806  395394\n",
       "2017-11-29  1029016  404646"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pv_uv_daily = pd.concat([pv_daily, uv_daily], axis=1) # \n",
    "pv_uv_daily.rename(columns={0:'pv', 'user_id':'uv'}, inplace=True) # rename 到pv，uv\n",
    "pv_uv_daily.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pv</th>\n",
       "      <th>uv</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>pv</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.933333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>uv</th>\n",
       "      <td>0.933333</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          pv        uv\n",
       "pv  1.000000  0.933333\n",
       "uv  0.933333  1.000000"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pv_uv_daily.corr(method='spearman') # pv，uv的相关系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pv</th>\n",
       "      <th>uv</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>pv</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.994891</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>uv</th>\n",
       "      <td>0.994891</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          pv        uv\n",
       "pv  1.000000  0.994891\n",
       "uv  0.994891  1.000000"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pv_uv_daily.corr(method='pearson')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2017-11-25', '2017-11-26', '2017-11-27', '2017-11-28',\n",
       "               '2017-11-29', '2017-11-30', '2017-12-01', '2017-12-02',\n",
       "               '2017-12-03', '2017-12-04', '2017-12-05', '2017-12-06',\n",
       "               '2017-12-07', '2017-12-08', '2017-12-10', '2017-12-13',\n",
       "               '2017-12-14', '2017-12-15', '2017-12-21', '2017-12-27',\n",
       "               '2017-12-31', '2018-01-01', '2018-01-31', '2018-02-03',\n",
       "               '2018-02-09', '2018-02-10', '2018-02-25', '2018-03-07',\n",
       "               '2018-03-11', '2018-03-17', '2018-04-27', '2018-08-28',\n",
       "               '2018-09-01', '2018-11-26', '2018-11-29', '2018-12-03',\n",
       "               '2019-02-18', '2019-02-25', '2019-02-26', '2019-10-20',\n",
       "               '2019-10-21', '2019-10-23', '2019-10-27', '2019-11-01',\n",
       "               '2019-11-03', '2020-05-10', '2020-10-27', '2020-11-04',\n",
       "               '2021-04-30', '2021-10-08', '2021-10-09', '2021-10-21',\n",
       "               '2021-10-28', '2021-11-02', '2021-11-03', '2022-11-03',\n",
       "               '2023-11-04', '2025-10-11', '2025-10-15', '2025-10-16',\n",
       "               '2025-10-19', '2025-10-21', '2025-10-22', '2025-10-24',\n",
       "               '2025-10-25', '2025-10-26', '2025-10-27', '2025-11-03',\n",
       "               '2025-11-04', '2026-10-25', '2028-10-24', '2036-10-21',\n",
       "               '2036-10-22'],\n",
       "              dtype='datetime64[ns]', name='date', freq=None)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pv_uv_daily.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA8gAAAIYCAYAAACxG8WZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XuY3GV98P/3zHdz2mSXTSCBkOxmo8ZbBYUKIh6qnAlWhVapWCtobf3VRx+96q+tUn1K6+GprX1q7dVqD8KPULVIDxSeSgkBtNoWW5RqWw93CzuzM5sEIkk2OyTksLPz+2O+uyxxN7sbNjPf2Xm/rmuv/c499/eezwzXxeSz9+GTq9VqSJIkSZLU7vLNDkCSJEmSpCwwQZYkSZIkCRNkSZIkSZIAE2RJkiRJkgATZEmSJEmSABNkSZIkSZIAE2RJz1AI4bshhAvS698IIXy+ySFJktT2QghvCSHcM+lxLYTwnGbGJLWCjmYHIGluQghF4FSgCuwH7gL+J/B/gGUxxmuP6v8i4EFgbYxxz1HP3Qz8DHAobRoE/i/wiRjjvtnEE2M84zjfiiRJC0IIoQZsijE+PKntN4DnAB+g/v0aYoyPHHXf7cAjMcZfPqq9HyhQ/54n/f0g8OkY47bZxBRj/ALwheN5P1I7cwZZak2vizGuAF4MvAT4MHAz8FMhhOVH9b0W+Lujk+NJfifG2AWsBt4OnA/80xTjSJKkOYoxbgfuA946uT2EsAp4DbDlGLf3pN/3ZwHbgNtDCG87QaFKwgRZamnpl+7fA2fGGB8AtgNvGH8+hJBQnyE+1pfv+FgHY4wPAq8HTqaeLBNCeHYI4f4Qwu4QwuMhhC+EEHomvUYxhHDJ0eOFEL4cQvifR7X9ewjhquN6s5Ikta4tHJUgA9cA340x/sdMN8cYH40xfhr4DeC3Qwh5gBDCB0MIj4QQKiGE74UQfnL8nhDC20II/3j0WCGEl4QQHgshdExqe0MI4dvH99akhcUEWWphIYRe6n99/re06RbqM8bjLgEWUU+iZyXGWKH+V+ofT5tywG8BpwPPB3qpf0HPZAvws5NiPQtYR31JuCRJ7eR24JQQwisntb2V+vf2XPwNsAYI6eNHqH9fnwT8JvD5EMLaYw2Q/jF8N3DppOafBf58jrFIC5IJstSa/jaEMAz8I/APwP9O2/8ceHUIYX36+FrgizHGI3McfwewCiDG+HCMcVuM8VCM8YfA7wGvnsUYdwCbQgib0sdvBb4UYzw8x1gkSWppMcYngb8k/SN2+t14DvDFOQ61I/09/h39lzHGHTHGsRjjl4D/Bs6bxTgTf8ROl3pffhyxSAuSh3RJremqGOO9RzfGGEshhK8BPxtC+EPgKp6aCZ6LdcAegBDCGuAP0nG6qP9hbe9MA8QYD4UQbktj+U3gzcAbjyMWSZKyrkp9xdZki4DJf6DeAvzfEMJ7qf/R+O4Y4645vs669Pf4d/S1wPuB/rR9BXDKLMb5PPD9EMIK4KeBr8cYd84xFmlBcgZZWni2UP8L9RuAQozxobncnH5ZXgJ8PW36LaAGvCjG2E39L865OcTyFuBi4EC6T1qSpIWmxFNJ6riN1E+vBiDG+HXqS5uvpP5dOtfl1QA/CewCYghhA/BnwHuAk2OMPcB/Movv6PQMkwfS8d6Ky6ulCc4gSwvPXwN/RH0v0h/N9qYQwhLgTOC3qc8Q/3/pU13APmA4hLAO+JXZjhljfCCEMEa9BJVfvpKkhepLwIdDCP9BfRn0RcDrgJcd1e8W6t+z3dTLKs5KCOFU4GrgBuB9McaxtNpEDfhh2uft1L/HZ+sW4IPABup7pCXhDLK04MQY91NPknuZXf3DXw0hVKgv17oF+Bbw8nQcqCfaL6aeJH+Z+gEhc3EL8ELqy7kkSVqIPgL8M/WzQfYCvwO8Jcb4n0f1uwXoo34mx6FZjDscQtgP/Af1QzmvjjHeBBBj/B71P0A/ADxG/bv2n+YQ8+2kyfGk73yp7eVqtVqzY5C0gKX7o94ZY3zljJ0lSVLDhBAeAf6fqc41kdqVM8iSTpgQQifwP4A/bXYskiTpKSGEN1Bfon1/s2ORssQEWdIJEUK4nPq+qMewdIQkSZkRQvgq8Fng3THGsSaHI2WKS6wlSZIkScIZZEmSJEmSABNkSZIkSZKANqqDPDY2VqtW52c5eZLkmK+xGsm4G8u4G8u4G69VY5+vuBctSh4HVj/ziNqX383G3WjG3VjG3XitGnuWvpvbJkGuVmsMDx+Yl7F6ejrnbaxGMu7GMu7GMu7Ga9XY5yvu1au7BuchnLbmd7NxN5pxN5ZxN16rxp6l72aXWEuSJEmShAmyJEmSJEmACbIkSZIkSYAJsiRJkiRJgAmyJEmSJEmACbIkSZIkSUAblXmSJKkdhBCKQAWoAqMxxnMnPffLwCeB1THGx0MIOeDTwGuAA8DbYowPpX2vAz6c3vqxGOOWtP0c4GZgGXAX8L4YYy2EsAr4EtAPFIGfjjHuPZHvVZKk+eYMsiRJC8+FMcazj0qOe4FLgdKkflcAm9KfdwKfTfuuAm4AXgqcB9wQQliZ3vPZtO/4fZvT9g8C98UYNwH3pY8lSWopJsiSJLWHTwG/CtQmtV0J3BJjrMUYvwH0hBDWApcD22KMe9JZ4G3A5vS57hjjAzHGGnALcNWksbak11smtUuS1DJMkCVJWlhqwD0hhG+FEN4JEEJ4PbA9xvido/quA8qTHg+lbcdqH5qiHeDUGONOgPT3mvl5O5IkNY57kCVJWlheEWPcEUJYA2wLIfwA+BBw2RR9c1O01Y6j/bgkSY6ens7jvf2osfLzNlYjGXdjGXdjGXfjtWrsWYrbBFmSpAUkxrgj/b0rhHA78GpgI/CdEALAeuChEMJ51GeAeyfdvh7YkbZfcFT7V9P29VP0B3gshLA2xrgzXYq9a6ZYq9Uaw8MH5voWp9TT0zlvYzWScTeWcTeWcTdeq8Y+X3GvXt31jMdwibUkSQtECGF5CKFr/Jr6rPGDMcY1Mcb+GGM/9ST3xTHGR4E7gWtDCLkQwvnAvnR59FbgshDCyvRwrsuArelzlRDC+ekJ2NcCd6QvfydwXXp93aR2SZJahjPIkiQtHKcCt6czxR3AF2OMdx+j/13USzw9TL3M09sBYox7QggfBR5M+30kxrgnvX4XT5V5+vv0B+ATwG0hhHdQPyn76nl6T5IkNYwJsiRJC0SMcQA4a4Y+/ZOua8C7p+l3E3DTFO3fBM6con03cPHcIpYkKVtcYi1JkiRJEibIkiRJkiQBJsiSJEmSJAEmyJIkSZIkAR7SJUmao9zu3fT8xCXkn7WRZT9+EYcvuoTqcwPkcs0OTZKktvTDAz/ktbdfSjjluVyw7lIu3XA5vV19zQ6rJZkgS5LmpOPfv03HwCPUDh1kxb33wg2/RvX0dRy+6BIOX3gJR171amon9TQ7TEmS2sZ/PP5tCvsGODC6n7sfuZsP8v/y/FUv4NINm7mk/3LOPfUldORN/WbDT0mSNCdJYQCA0X96gJE9FRZ/5T4W338vS+64nWWf30ItSRg997x6wnzRJYy+8CzIu6NHkqQTZXBkEIB/+bkH2bn7h9xT3Mq2wbv5zHf+gD/4t99j5ZKVXNh3CZf1b+bC3otZuXRVkyPOLhNkSdKcJMUCtWXLYO1axjp7OPjWt3HwrW+DI0dY9K0HWXT/vSy+/16W/9ZHWf5bH2XslFM4/Or6UuzDF1xMbfXqZr8FSZIWlHKlxJJkCaetOI3Oag/vOnsT7zr7PYwc2sdXy/ezbXAr95Xu4W/++y9JcgkvOe2lXNq/mUs3XE5Y+TxybpOaYIIsSZqTpDhAtX/jj+45XrSII+e/nCPnv5wDv/br5HbtYvE/3M/i++9l8VfvY+lf3wbAkbN+jMMXXcyRCy/hyDkvgUWLGv8mJElaQMojJdZ39ZLPPX3FVveSk3j9c36S1z/nJ6mOVfm3Xd/i3sGt3DO4lY8+8Ot89IFfp69rA5dsuIzL+jfz8tN/nKUdS5v0LrLBBFmSNCdJsUC1/1kzlkGorVnDoauv4dDV18DYGB3//u16svyV++j8g0+R+9TvMtbVzZFXXZDuX76YsfW9DXkPkiQtJKVKccZDuZJ8wrmnnce5p53HB1/6v9jxxHbuHbyHewe3cusPvsBN//lndHZ08qr1F3Bp/2Yu6buMtStOb9A7yA4TZEnS7I2NkRQLHL7wkrnVCcznGT37xYye/WIOvP9Xye0bZtHX/oHFX6kvx17y5TsBGA3P4/CF9WT5yMteAUvb+6/YkiTNRrlS4sxTzprTPaevWMe1Z7yda894OwdHD/LPO77OPcW72Ta4lbuLdwHwwlPO4tINl3Fp/2Z+bM05PzJDvRCZIEuSZi3/2KPkDh6k2r+RZ7IwunZSD4dfdyWHX3cl1Gok8QfpYV/bWHbTn9L5x39IbdkyDr/8lRxJD/uqPus5lpKSJOko+4/s5/EnH2dD94bjHmNpx1Iu6ruUi/ou5bdqv0vc+wPuKd7NvYNb+f2H/g+/961PcsqyU7i47zIu3XA5F/ReRPeSk+bxXWSHCbIkadbGT7Cu9m+cv0FzOarPez5PPu/5PPmu98D+/Sx+4B/rh3195T6WfOgD9dfs6+fwRRfXS0n9+KuoreiavxgkSWpRQ5UywLzVPc7lcjxv1fN53qrn894X/xJ7D+7hK+X7uKd4N1uLd/Gl+EU68h28bO0ruGTD5VzWfznP7tk0L6+dBSbIkqRZS4oFAKobn3XiXmT5cg5fcjmHL7mc/UC+WKjPLn/lXpbedivLbr6R2qJFHDnv/Ppy7IsuoXrGmc4uS5LaUmmkCMxfgny0lUtX8VObruanNl3N6Ngo33zsQbals8s3/POvccM//xobT3oWl23YzKX9mzl/7ctZnCw+IbE0ggmyJGnW8sUCtY6Ohh6mNda/kYNv/3kOvv3n4fBhFv3rNyZqL6/42A3wsRuorjmVIxdeXD/s69UXUlt1csPikySpmUqVEgC9z2CJ9Wx15Ds4f+3LOH/ty/hfL/tNypUS2wa3sq14Nzd/90b+5N8/w4pFXVzQexGXbricizdcxprONSc8rvlkgixJmrWkMEC1tw86mvT1sXgxR175Ko688lXs/1+/Sf7RnSz66v0svn8bi7fexdIvfZFaLsfoi8+ZmF0e/bFzIEmaE68kSSdYuVJiabKUNcsan4j2dvXxc2f+Aj935i+w/8h+/nH71yb2Lv/dwB0A/NiaF3PphnrN5ReuPivzB32ZIEuSZi0pFhibz/3Hz9DYaWs5dM1bOHTNW6BapePbD9VLSd1/L52/9zss/91PMNbTw+FXX8Thiy7hyIUXQ8+zmx22JEnzpjQySG9XH7kmbzVavmg5l/dfweX9V1Cr1fjP3f/BvcWt3DN4N5988Lf4nQf/N6d2nsalGy7nkg2X86reC1ixaEVTY56KCbIkaXZqNZLCAIfOObfZkUwtSRg95yWMnvMSDvzK9eT27Gbx177KonQ59tI7/gaA0Xu2wdkvbXKwkiTNj3KlRG/3idl/fLxyuRwvPOVFvPCUF/FL5/4Kjz/5OPcN3sO2wa3c8cjtfP77W1icX8zL172Sy/uv4L0vf0+zQ55ggixJmpXc3j3kR/bN7wnWJ1Bt1ckcuuoNHLrqDfXk/nvfZdFD32TpGWc2OzRJkuZNuTLIj615cbPDOKZTlp3Cm573M7zpeT/DkeoR/uXRB9hW3Mq2wbu5/uu/wvPXPpeXn3Jhs8METJAlSbM0UeJpYwsuUc7lqJ5xJtUzzmRpTycMH2h2RJIkPWNPHK6w5+CehhzQNV8WJYt45bpX8cp1r+I3X/Fxhg/upf+0dQxn5Ls52zukJUmZMVHiqUVmkCVJWujGT7DuO0ElnhqhZ+nKZofwNCbIkqRZSQoD1HI5qhv6mx2KJEmivv8YTlwN5HZkgixJmpWkWGBs7emwdGmzQ5EkSUB5ZBCAvu7+5gaygJggS5JmJSkMUN34rGaHIUmSUoOVQTo7Ojl56cnNDmXBMEGWJM1KUiy4/1iSpAwpj5QyUQN5ITFBliTNKPdEhfwPd5kgS5KUIeVKib4WOsG6FZggS5JmlC8WAVxiLUlShpQqgx7QNc9MkCVJMxov8TTmDLIkSZmw79Aw+w4N09vlDPJ8MkGWJM0oKQwA1kCWJCkrypUygEus55kJsiRpRkmxwNjJJ1PrPqnZoUiSJKA0XuLJJdbzygRZkjSjpDhAtd/9x5IkZUW5Uk+Qe7tNkOeTCbIkaUaWeJIkKVvKlRLLF61g5ZJVzQ5lQemYqUMI4SbgtcCuGOOZadtHgSuBMWAX8LYY444QwgXAHUAhvf1vYowfSe/ZDHwaSIDPxRg/kbZvBG4FVgEPAW+NMR4OISwBbgHOAXYDb4oxFtN7rgfeAVSB98YYtz7Dz0GSNJ1Dh8gPlam+6WeaHYkkSUqVKiX6ujZYA3mezWYG+WZg81Ftn4wxvijGeDbwd8CvT3ru6zHGs9Of8eQ4Af4IuAJ4AfDmEMIL0v6/DXwqxrgJ2Es98SX9vTfG+BzgU2k/0vuuAc5I4/pMOr4k6QRIyiVytZozyJIkZUhpZJA+l1fPuxkT5Bjj14A9R7WNTHq4HKjNMMx5wMMxxoEY42HqM8ZXhhBywEXAX6X9tgBXpddXpo9Jn7847X8lcGuM8VCMsQA8nI4vSToBksIjgDWQJUnKilqtRrlSsgbyCTDjEuvphBA+DlwL7AMunPTUy0II3wF2AL8cY/wusA4oT+ozBLwUOBkYjjGOTmpfl15P3BNjHA0h7Ev7rwO+cdRY65AknRDjNZA9pEuSpGzYd2iYyuERSzydAMedIMcYPwR8KN0P/B7gBup7iDfEGJ8IIbwG+FtgEzDVwvjaMdo5znumlSQ5eno6Z+o2K0mSn7exGsm4G8u4G8u4T5z8jjK1ri5Oek4fTNrn1AqxT6VV45YkaVxp/ATrLhPk+XbcCfIkXwS+DNwweel1jPGuEMJnQginUJ/l7Z10z3rqM8yPAz0hhI50Fnm8nUn3DIUQOoCTqC/1nm6sY6pWawwPHzjOt/h0PT2d8zZWIxl3Yxl3Yxn3idMd/4v8ho0M73vyae2tEPtU5ivu1au75iEaSZLmrjRSAqyBfCIcV5mnEMKmSQ9fD/wgbT8t3SdMCOG8dPzdwIPAphDCxhDCYuqHbN0ZY6wBXwHemI51HfVTsAHuTB+TPn9/2v9O4JoQwpL0BOxNwL8ez/uQJM0sKQww5gFdkiRlRrlST5Ddgzz/ZlPm6S+AC4BTQghD1JdSvyaEEKiXeRoEfjHt/kbgXSGEUeBJ4Jo0qR0NIbwH2Eq9zNNN6d5kgA8At4YQPgb8G3Bj2n4j8OchhIepzxxfAxBj/G4I4Tbge8Ao8O4YY/UZfAaSpOlUqySlQQ6/5nXNjkSSJKVKlSLdi0+iZ+nKZoey4MyYIMcY3zxF841TtBFj/EPgD6d57i7grinaB5jiFOoY40Hg6mnG+jjw8emjliTNh/yO7eSOHLHEkyRJGVIe8QTrE+W4llhLktpDUhgALPEkSVKWlCsleq2BfEKYIEuSpvVUiSdnkCVJyoJarUapUmKDJ1ifECbIkqRpJYUBakuWMHa65eYlScqCPQf3sP/IEy6xPkFMkCVJ00qKBap9GyDv14UkSVlQHq+B3O0M8ongv3gkSdNKCgPuP5YkKUPGSzz1ucT6hDBBliRNrVarzyC7/1iSpMwYHElnkLt6mxzJwmSCLEmaUm7XLnIH9juDLElShpQrg/Qs6aF7yUnNDmVBMkGWJE1p/ATrMWeQJUnKjHoNZJdXnygmyJKkKSWFRwBrIEuSlCXlSok+D+g6YUyQJUlTSooFavk81fWWkZAkKQtqtRrlSskSTyeQCbIkaUpJcYCx9b2weHGzQ5EkScDjTz7OgdED9JkgnzAmyJKkKdVPsHZ5tSRJWTFeA9kl1ieOCbIkaUqWeJIkKVtKEyWeTJBPlI5mByBJyp7cvmHye/Z4QFcLCiEUgQpQBUZjjOeGED4JvA44DDwCvD3GOJz2vx54R9r/vTHGrWn7ZuDTQAJ8Lsb4ibR9I3ArsAp4CHhrjPFwCGEJcAtwDrAbeFOMsdiI9yxJ7aJUKQHWQD6RnEGWJP2I8RJPziC3rAtjjGfHGM9NH28Dzowxvgj4L+B6gBDCC4BrgDOAzcBnQghJCCEB/gi4AngB8Oa0L8BvA5+KMW4C9lJPrkl/740xPgf4VNpPkjSPypUSq5auYsXirmaHsmCZIEuSfkRSGAAs8bRQxBjviTGOpg+/AaxPr68Ebo0xHooxFoCHgfPSn4djjAMxxsPUZ4yvDCHkgIuAv0rv3wJcNWmsLen1XwEXp/0lSfOkNFKkz+XVJ5RLrCVJP2JiBnlDf3MD0fGoAfeEEGrAn8QY//So538O+FJ6vY56wjxuKG0DKB/V/lLgZGB4UrI9uf+68XtijKMhhH1p/8enCzRJcvT0dM7hrU0vSfLzNlYjGXdjGXdjGff8275/iDPXnDltfFmO/ViyFLcJsiTpR+QLA1RPPQ2WL292KJq7V8QYd4QQ1gDbQgg/iDF+DSCE8CFgFPhC2neqGd4aU68wqx2j/7HGmla1WmN4+MCxusxaT0/nvI3VSMbdWMbdWMY9v2q1GqV9g1zSd/m08WU19pnMV9yrVz/zpecusZYk/YikWGDM/cctKca4I/29C7id+nJpQgjXAa8F3hJjHE9ch4DJJ72sB3Yco/1xoCeE0HFU+9PGSp8/Cdgzn+9NktrZrid3cbB60BJPJ5gJsiTpRySFAfcft6AQwvIQQtf4NXAZ8J/pidQfAF4fY5z8J/o7gWtCCEvS06k3Af8KPAhsCiFsDCEspn6Q151pYv0V4I3p/dcBd0wa67r0+o3A/ZMScUnSM1QaKQLQ19XX3EAWOBNkSdLTHThA8uhOT7BuTacC/xhC+A71RPfLMca7gT8Euqgvuf52COGPAWKM3wVuA74H3A28O8ZYTfcYvwfYCnwfuC3tC/VE+/0hhIep7zG+MW2/ETg5bX8/8MET/3YlqX2UJ0o8OYN8IrkHWZL0NMlgEfAE61YUYxwAzpqi/TnHuOfjwMenaL8LuGua1zhvivaDwNVzDFmSNEvlkfEE2RnkE8kZZEnS01gDWZKk7ClVBjll2Wo6F2XjtOeFygRZkvQ0EzWQTZAlScqM0sig+48bwARZkvQ0SXGAsZ4eaitXNTsUSZKUKldK7j9uABNkSdLTJIUBZ48lScqQsdoYQ5WyJZ4awARZkvQ0SbHgAV2SJGXIY/sf5fDYYQ/oagATZEnSU44cIT9UdgZZkqQMKaUlnvq6TZBPNBNkSdKEfLlErlqluvHZzQ5FkiSlypVBAPq6+psbSBswQZYkTRgv8TTmDLIkSZlRGqknyOu61jc5koXPBFmSNGGixJN7kCVJyoxypcSazlNZ1rGs2aEseCbIkqQJSbFArbOTsTWnNjsUSZKUKlVK9FniqSFMkCVJE5LiANUNGyGXa3YokiQpVRopekBXg5ggS5ImJMWCJ1hLkpQh1bEq258YotcZ5IYwQZYk1Y2NWQNZkqSMeXT/TkbHRq2B3CAmyJIkAPKP7iR36JAzyJIkZUhpvMRTtzPIjWCCLEkCJp1gbYIsSVJmjJd46nMGuSFMkCVJwFM1kF1iLUlSdpQrJXLkWNfV2+xQ2oIJsiQJqM8g1zo6GFu3vtmhSJKkVLlS4rTla1mSLGl2KG3BBFmSBEC+WKDatwE6OpodiiRJSpVGBj2gq4FMkCVJQH2J9Zj7jyVJypRypWSC3EAmyJIkqNVICgPuP5YkKUNGx0bZ/sQQfd0myI1igixJIrdnD/nKiCdYS5KUITue2E61VqWvq7/ZobQNE2RJEknhEcATrCVJypJypQRArzPIDWOCLEl6qsRTvwmyJElZMZEguwe5YUyQJUn1Ek+5XP0Ua0mSlAmDI0XyuTzrVliCsVFMkCVJ9ROsT18HS5c2OxRJkpQqV0qsXX46i5PFzQ6lbZggS5I8wVqSpAyyxFPjmSBLkkiKBU+wliQpY8ojJfq63f7USB2z6RRCuAl4LbArxnhm2vZR4EpgDNgFvC3GuCOEkAM+DbwGOJC2P5Tecx3w4XTYj8UYt6Tt5wA3A8uAu4D3xRhrIYRVwJeAfqAI/HSMce+xXkOSNDe5JyrkH/+hCbIkSRlypHqEHfu3O4PcYLOdQb4Z2HxU2ydjjC+KMZ4N/B3w62n7FcCm9OedwGcB0mT3BuClwHnADSGElek9n037jt83/lofBO6LMW4C7ksfT/sakqS5yxfSE6xdYi1JUmZsf2KIsdoYfV3OIDfSrBLkGOPXgD1HtY1MergcqKXXVwK3xBhrMcZvAD0hhLXA5cC2GOOeGONeYBuwOX2uO8b4QIyxBtwCXDVprC3p9Zaj2qd6DUnSHCXFAQDGnEGWJCkzrIHcHLNaYj2dEMLHgWuBfcCFafM6oDyp21Dadqz2oSnaAU6NMe4EiDHuDCGsmeE1dk4Xa5Lk6OnpnPV7O5Ykyc/bWI1k3I1l3I1l3Mcv/2j9f8ErzjoDumcfSxZiPx6tGrckqb2URgYBnEFusGeUIMcYPwR8KIRwPfAe6kuoc1N0rR1H+7HM+Z5qtcbw8IEZhp2dnp7OeRurkYy7sYy7sYz7+K34wX+x5JRTGB7rgDnEkoXYj8d8xb16ddc8RCNJ0tTKlUGSXMLpK9bN3FnzZr5Osf4i8Ib0egjonfTcemDHDO3rp2gHeGx86XT6e9cMryFJmqOkMEC13/3HkiRlSalS4vQV6+jIP6M5Tc3RcSfIIYRNkx6+HvhBen0ncG0IIRdCOB/Yly6T3gpcFkJYmR7OdRmwNX2uEkI4Pz2d+lrgjkljXZdeX3dU+1SvIUmaI0s8SZKUPeVKyeXVTTDbMk9/AVwAnBJCGKK+lPo1IYRAvczTIPCLafe7qJdfeph6Caa3A8QY96SloR5M+30kxjh+8Ne7eKrM09+nPwCfAG4LIbwDKAFXH+s1JElzdOgQ+e1DnmAtSVLGlEYGeXXvhTN31LyaVYIcY3zzFM03TtO3Brx7muduAm6aov2bwJlTtO8GLp7La0iSZi8pDZLDb16cAAAgAElEQVSr1ZxBliQpQw5VD/Ho/p3WQG6C+dqDLElqQUnhEcAayJIkZcn2J4aoUTNBbgITZElqY0mxAOAhXZIkZch4iacN3f3NDaQNmSBLUhtLCgOMdXVTO/nkZociSZJS5UoJwBnkJjBBlqQ2lh8/wTo3VXl5SZLUDOWREh35DtYuP73ZobQdE2RJamNJYYAxD+iSJClTSpUi61asJ8knzQ6l7ZggS1K7Gh0lKZc8oEuSpIwpjVgDuVlMkCWpTeW3D5E7csQST5IkZUy5UnL/cZOYIEtSm5o4wdoZZEmSMuPg6EEeO/Aofd3OIDeDCbIktamnSjw5gyxJUlYMVcqAJ1g3iwmyJLWppDBAbckSxtZ6QqYkSVlRqtRrIPc6g9wUJsiS1KaSYoHqhn7I+1UgSVJWjNdA7nMGuSn8V5EktamkMOD+Y0mSMqY0Msii/CJOW7622aG0JRNkSWpHtRrJYMH9x5IkZUy5Msj6rl7yOVO1ZvBTl6Q2lN/1GLkDB6j2O4MsSVKW1Es8uf+4WUyQJakN5QvjJZ6cQZYkKUsGRwbZ4AFdTWOCLEltKCkOADiDLElShhw4coDHn/yhJZ6ayARZktpQUhygliSM9foFLElSVlgDuflMkCWpDSWFAcbW9cKiRc0ORZIkpcrjNZDdg9w0Hc0OQJLUeEmx4P7jBSqEUAQqQBUYjTGeG0JYBXwJ6AeKwE/HGPeGEHLAp4HXAAeAt8UYH0rHuQ74cDrsx2KMW9L2c4CbgWXAXcD7Yoy16V7jxL5bSVpYBtME2T3IzeMMsiS1oaQw4P7jhe3CGOPZMcZz08cfBO6LMW4C7ksfA1wBbEp/3gl8FiBNdm8AXgqcB9wQQliZ3vPZtO/4fZtneA1J0iyVR0osSZawunNNs0NpWybIktRmcsN7yQ8PU91ogtxGrgS2pNdbgKsmtd8SY6zFGL8B9IQQ1gKXA9tijHvSWeBtwOb0ue4Y4wMxxhpwy1FjTfUakqRZKldK1kBuMpdYS1KbSYppiad+l1gvUDXgnhBCDfiTGOOfAqfGGHcCxBh3hhDGpybWAeVJ9w6lbcdqH5qinWO8xrSSJEdPT+dc3980Y+XnbaxGMu7GMu7GMu65236gzLNXPeu4X9/P/JkzQZakNpMU0hJPziAvVK+IMe5IE9RtIYQfHKNvboq22nG0H5dqtcbw8IHjvf1peno6522sRjLuxjLuxjLuuSvuLXDGyhcd9+u3+2e+enXXMx7DuXtJajMTM8gb+psbiE6IGOOO9Pcu4Hbqe4gfS5dHk/7elXYfAnon3b4e2DFD+/op2jnGa0iSZuGJI0+w++Bu+rot8dRMJsiS1GaSwgDV09ZCZzaWMmn+hBCWhxC6xq+By4D/BO4Erku7XQfckV7fCVwbQsiFEM4H9qXLpLcCl4UQVqaHc10GbE2fq4QQzk9PwL72qLGmeg1J0iyUR0oA9FniqalMkCWpzeSLBfcfL1ynAv8YQvgO8K/Al2OMdwOfAC4NIfw3cGn6GOplmgaAh4E/A/4HQIxxD/BR4MH05yNpG8C7gM+l9zwC/H3aPt1rSJJmYaIGsjPITeUeZElqM0lhgMMXXdLsMHQCxBgHgLOmaN8NXDxFew149zRj3QTcNEX7N4EzZ/sakqTZKVfqM8i9ziA3lTPIktRO9u8neexRxpxBliQpU0ojJZZ1LGP1stXNDqWtmSBLUhtJBouAJ1hLkpQ1pcogvV195HJTFQxQo5ggS1IbsQayJEnZVK6U6O1y/3GzmSBLUhuZqIFsgixJUqaURwZNkDPABFmS2khSLDC2ciW1npXNDkWSJKUqh0fYe2gvfd39zQ6l7ZkgS1IbSQoDzh5LkpQxpYkayM4gN5sJsiS1kaRY8IAuSZIy5qkSTybIzWaCLEnt4vBh8kMlZ5AlScqY0kgRgN5uayA3mwmyJLWJZKhEbmyMar8zyJIkZUm5UqKzYzknLz252aG0PRNkSWoT+YkSTybIkiRlSalSoq/bGshZYIIsSW1iosSTe5AlScoUayBnhwmyJLWJpFig1rmc2po1zQ5FkiRNUhoZpM/9x5lggixJbWKixJPLtyRJyox9h4YZObyP3i4T5CwwQZakNpEUC55gLUlSxpQs8ZQpJsiS1A7GxkgGi+4/liQpY0ojgwBscIl1JpggS1IbyO/cQe7QIWeQJUnKmHKlniA7g5wNJsiS1AYmTrA2QZYkKVPKIyVWLOqiZ8nKZociTJAlqS0k4zWQXWItSVKmjJd4sgZyNpggS1IbSAoD1BYtYmzd+maHIkmSJhkcGXT/cYaYIEtSG0iKBap9GyBJmh2KJElK1Wq1iRlkZYMJsiS1gbwlniRJypzhQ3t54kiF3m4T5KzomKlDCOEm4LXArhjjmWnbJ4HXAYeBR4C3xxiHQwj9wPeBmN7+jRjjL6b3nAPcDCwD7gLeF2OshRBWAV8C+oEi8NMxxr0hhBzwaeA1wAHgbTHGh9KxrgM+nL7Gx2KMW57BZyBJC1utRlIY4MhLz292JJIkaZLxEk99Xf3NDUQTZjODfDOw+ai2bcCZMcYXAf8FXD/puUdijGenP784qf2zwDuBTenP+JgfBO6LMW4C7ksfA1wxqe870/tJE+obgJcC5wE3hBA88k2SppHbvZv8ExXGnEGWJClTSpUSgDPIGTJjghxj/Bqw56i2e2KMo+nDbwDHPPUlhLAW6I4xPhBjrAG3AFelT18JjM8Abzmq/ZYYYy3G+A2gJx3ncmBbjHFPjHEv9WT96ARekpRKCo8AnmAtSVLWlNMEuc89yJkx4xLrWfg56kukx20MIfwbMAJ8OMb4dWAdMDSpz1DaBnBqjHEnQIxxZwhhTdq+DihPcc907ceUJDl6ejpn/aaOPVZ+3sZqJONuLONuLOOeXm7XDgA6X/gCOufxtfzMJUl6ZkojRboXn8RJS3qaHYpSzyhBDiF8CBgFvpA27QT6Yoy70z3HfxtCOAOYqqhXbYbhp7vneMaiWq0xPHxgpm6z0tPTOW9jNZJxN5ZxN5ZxT6/zu98nyeUYXnkqzONrtftnvnp11zxEI0lqZ+VKiT5LPGXKcZ9inR6U9VrgLemyaWKMh2KMu9Prb1E/wOu51Gd5Jy/DXg/sSK8fS5dOjy/F3pW2DwG9U9wzXbskaQpJsVCvf7xkSbNDkSRJk1jiKXuOK0EOIWwGPgC8PsZ4YFL76hBCkl4/i/oBWwPpEupKCOH89HTqa4E70tvuBK5Lr687qv3aEEIuhHA+sC8dZytwWQhhZXo412VpmyRpCklhwP3HkiRlTK1WozRScv9xxsymzNNfABcAp4QQhqifIH09sATYFkKAp8o5vQr4SAhhFKgCvxhjHD/g6108Vebp79MfgE8At4UQ3gGUgKvT9ruol3h6mHqZp7cDxBj3hBA+CjyY9vvIpNeQJB0lGSxw6IrXNjsMSZI0ye6Duzkwut8l1hkzY4IcY3zzFM03TtP3r4G/nua5bwJnTtG+G7h4ivYa8O5pxroJuGn6qCVJALnKCPnHH6e6wRJPkiRlSTmtgdzbZYKcJce9B1mSlH1JsQBY4kmSpKwZL/HkHuRsMUGWpAUsXxgAoNrvDLIkSVkyWKnPIPd1myBniQmyJC1g4zPIYxtNkCVJypLyyCArl6yka3F3s0PRJCbIkrSAJcUCY6esprbCmr2SJGVJuVKi1wO6MscEWZIWMEs8SZKUTaWRQfcfZ5AJsiQtYEmx4P5jSZIyplarUa6U6PME68wxQZakhergQfI7tjuDLElSxvzwyR9ysHrQA7oyyARZkhaopDRIrlZzBlmSpIwpV8ZrIJsgZ40JsiQtUMl4iSdnkCVJypTSyHiJp/7mBqIfYYIsSQtUUhyvgWyCLElSlpQrJQDWd/U2ORIdzQRZkhaopDDAWPdJ1FatanYokiRpktJIiZOXnsyKRSuaHYqOYoIsSQvUxAnWuVyzQ5EkSZOUKkX3H2eUCbIkLVD5woAHdEmSlEHlSsn9xxllgixJC9HoKEm5xJgHdEmSlCljtTGGKmVnkDPKBFmSFqD8UJnc6KgzyJIkZcyuA49xqHqIXmsgZ5IJsiQtQEmxAFjiSZKkrCmN1E+w3tC1ocmRaComyJK0AE3UQHYGWZKkTClX6jWQe02QM8kEWZIWoKRYoLZ0KWOnrW12KJIkaRJrIGebCbIkLUBJsUB1Qz/k/d+8JElZUhoZZPWyNXQu6mx2KJqC/3KSpAUoKQ64/1iSpAwqVUr0eUBXZpkgS9JCU6ulM8juP5YkKWvKlUFLPGWYCbIkLTD5xx4l9+STziBLkpQx1bFqWgPZA7qyygRZkhaYiRJPnmAtSVKmPHbgUY6MHaGv2wQ5q0yQJWmByY+XeHIGWZKkTCmlJ1i7xDq7OpodgCRpfiXFAWpJwth6y0e0qxBCAnwT2B5jfG0I4WLgk9T/MP4E8LYY48MhhCXALcA5wG7gTTHGYjrG9cA7gCrw3hjj1rR9M/BpIAE+F2P8RNq+EbgVWAU8BLw1xni4QW9ZklpCeaReA7nPJdaZ5QyyJC0wSWGgnhwvWtTsUNQ87wO+P+nxZ4G3xBjPBr4IfDhtfwewN8b4HOBTwG8DhBBeAFwDnAFsBj4TQkjSxPuPgCuAFwBvTvuS3vupGOMmYG86tiRpklKlniBbAzm7TJAlaYFJigWXV7exEMJ64CeAz01qrgHd6fVJwI70+kpgS3r9V8DFIYRc2n5rjPFQjLEAPAycl/48HGMcSGeHbwWuTO+5KB2DdMyrTsT7k6RWVh4pcWrnaSztWNrsUDQNl1hL0gKTFAoc+skXNzsMNc/vA78KdE1q+3ngrhDCk8AIcH7avg4oA8QYR0MI+4CT0/ZvTLp/KG1jvP+k9pem9wzHGEen6D+tJMnR09M5+3d2zLHy8zZWIxl3Yxl3Yxn3j9r55BAbV/afsPH9zJ85E2RJWkBye/eQ3zdMdeOzmx2KmiCE8FpgV4zxWyGECyY99UvAa2KM/xJC+BXg96gnzbkphqkdo32qlWfH6n9M1WqN4eEDM3WblZ6eznkbq5GMu7GMu7GM+0c9srfAuaeee8LGb/fPfPXqrpk7zcAl1pK0gCTjJ1hb4qldvQJ4fQihSH3580UhhC8DZ8UY/yXt8yXg5en1ENALEELooL78es/k9tR66suyp2t/HOhJx5jcLklKjY6NsuOJIfq6+psdio7BBFmSFpCJGsjuQW5LMcbrY4zrY4z91A/Zup/6fuKTQgjPTbtdylMHeN0JXJdevxG4P8ZYS9uvCSEsSU+n3gT8K/AgsCmEsDGEsDh9jTvTe76SjkE65h0n8K1KUst5dP9ORsdG6e22xFOWmSBL0gIykSBv6G9uIMqMdF/wLwB/HUL4DvBW4FfSp28ETg4hPAy8H/hges93gduA7wF3A++OMVbTsd4DbKWeZN+W9gX4APD+dKyT07ElSalSWuLJGsjZ5h5kSVpAksIA1bWnw7JlzQ5FTRZj/Crw1fT6duD2KfocBK6e5v6PAx+fov0u4K4p2geon3ItSZrCeImnvm5rIGeZM8iStIAkxYL7jyVJyqBypUSOHOtWrG92KDoGE2RJWkDyhQH3H0uSlEHlSonTlq9lSbKk2aHoGEyQJWmh2L+fZNdjjDmDLElS5pRGBl1e3QJMkCVpgfAEa0mSsqtcKXlAVwswQZakBWIiQXYGWZKkTKnXQN5Onwly5pkgS9ICkRQGABNkSZKyZvsTQ1RrVXq7XGKddSbIkrRAJMUCY6tWUTupp9mhSJKkScqVEmCJp1ZggixJC0RSGHD2WJKkDCqP1BNk9yBnnwmyJC0QyWCBar8HdEmSlDWDlSL5XN4ayC3ABFmSFoLDh8kPlZ1BliQpg8ojJU5fvo5FyaJmh6IZmCBL0gKQlAfJjY1Z4kmSpAwqV0r0dru8uhWYIEvSAvBUiScTZEmSssYayK3DBFmSFoD8eIknZ5AlScqUw9XD7HhiuwlyizBBlqQFICkWqHUup7Z6dbNDkSRJk2x/YogaNTZ09zc7FM2CCbIkLQBJYaA+e5zLNTsUSZI0yXgNZGeQW0PHTB1CCDcBrwV2xRjPTNs+CbwOOAw8Arw9xjicPnc98A6gCrw3xrg1bd8MfBpIgM/FGD+Rtm8EbgVWAQ8Bb40xHg4hLAFuAc4BdgNvijEWj/UaktSukmKB6nOf1+wwJEnSUUojg4AJcquYzQzyzcDmo9q2AWfGGF8E/BdwPUAI4QXANcAZ6T2fCSEkIYQE+CPgCuAFwJvTvgC/DXwqxrgJ2Es98SX9vTfG+BzgU2m/aV9jju9bkhaOapVksOj+Y0mSMqhcGSTJJZy+Yl2zQ9EszJggxxi/Buw5qu2eGONo+vAbwHjF6yuBW2OMh2KMBeBh4Lz05+EY40CM8TD1GeMrQwg54CLgr9L7twBXTRprS3r9V8DFaf/pXkOS2lJ+5w5yhw9bA1mSpAwqjZRYt2I9HfkZF+8qA+ZjD/LPAX+fXq8DypOeG0rbpms/GRielGyPtz9trPT5fWn/6caSpLaUjJ9gbYIsSVLmlCqDLq9uIc/ozxghhA8Bo8AX0qapToepMXUiXjtG/2ONdax7ppUkOXp6OmfqNitJkp+3sRrJuBvLuBurnePO7doOwPKzzoAGfgbt/JlLkjRb5UqJC3svbnYYmqXjTpBDCNdRP7zr4hjjeII6BPRO6rYe2JFeT9X+ONATQuhIZ4kn9x8fayiE0AGcRH2p97FeY1rVao3h4QOzf4PH0NPTOW9jNZJxN5ZxN1Y7x738uz8gWbSI4RWroIGfQTt/5gCrV3fNQzSSpIXsUPUQj+7f6QxyCzmuJdbpidQfAF4fY5z8r4w7gWtCCEvS06k3Af8KPAhsCiFsDCEspn7I1p1pYv0V4I3p/dcBd0wa67r0+o3A/Wn/6V5DktpSUixQ3dAPiecVSpKUJdsr9Z2hJsitY8YEOYTwF8AD9cswFEJ4B/CHQBewLYTw7RDCHwPEGL8L3AZ8D7gbeHeMsZrODr8H2Ap8H7gt7Qv1RPv9IYSHqe8xvjFtvxE4OW1/P/DBY73GM/wcJKllJYUB9x9LkpRBg2mJp77uDU2ORLM14xLrGOObp2i+cYq28f4fBz4+RftdwF1TtA8wxSnUMcaDwNVzeQ1Jaju1GvligcMvf0WzI5EkSUcpV0oA9HWZILeK+TjFWpLUJLnHHye//wnGnEGWJClzypUSHfkOTlu+ttmhaJZMkCWphU2UeNr4rCZHIkmSjlYaKbJuxXqSvOeEtAoTZElqYUlxvAayCbIkSVlTqpTo6+5vdhiaAxNkSWphSWGAWj5PtdfTMSVJyppypUSfJ1i3FBNkSWphSbHA2Lr1sGRJs0ORJEmTPDn6JLsOPGaJpxZjgixJLSwpDri8WpKkDBqyBnJLMkGWpBaWFAvWQJYkKYPKlfEayP3NDURzYoIsSS0qN7KP/O7dJsiSJGVQaWS8BrIzyK3EBFmSWlRSLACWeJIkKYtKlUEW5xdz6vLTmh2K5sAEWZJa1EQNZGeQJUnKnPJIifVdveRzplytxP9aktSi8uMzyCbIkiRlTrky6AFdLcgEWZJaVFIYYGz1GlixotmhSJKko5Qqg/R1b2h2GJojE2RJalFJseD+Y0mSMmj/kf08/uTj9HWZILcaE2RJalGWeJIkKZsmaiB3u8S61ZggS1IrevJJkh3bnUGWJCmDxmsguwe59ZggS1ILSkr1L15nkCVJyp7Bkfr3tEusW48JsiS1oIkST84gS5KUOeVKiaXJUtZ0ntrsUDRHJsiS1IKSojWQJUnKqnKlXgM5l8s1OxTNkQmyJLWgpDDA2Ek91FauanYokiTpKKURayC3KhNkSWpBEydY+5dpSZIyp1wZpK+7v9lh6DiYIEtSC0oKAy6vliQpg544XGHPwT3OILcoE2RJajVHjpAfKntAlyRJGVSqlADoM0FuSSbIktRi8kNlcqOjjDmDLElS5pTTBLm32wS5FZkgS1KLSYoFwBJPkiRlUXmiBnJ/cwPRcTFBlqQWM1ED2RlkSZIyp1QpsaxjGacsO6XZoeg4mCBLUotJigVqy5YxduppzQ5FkiQdZbzEkzWQW5MJsiS1mKRYoLqhH/L+L1ySpKwpV0r0dW1odhg6Tv7rSpJaTFIcoNrv/mNJkrKoXBn0gK4WZoIsSa1kbIxksOj+Y0mSMmjk0D6GDw3T6wxyyzJBlqQWkn/sUXJPPukJ1pIkZdB4DeQN3SbIraqj2QFIkmZvosSTM8g6hhBCAnwT2B5jfG0IIQd8DLgaqAKfjTH+Qdr+aeA1wAHgbTHGh9IxrgM+nA75sRjjlrT9HOBmYBlwF/C+GGMthLAK+BLQDxSBn44x7m3A25WkzJiogdzlEutW5QyyJLWQiRJPziDr2N4HfH/S47cBvcDzYozPB25N268ANqU/7wQ+C5AmuzcALwXOA24IIaxM7/ls2nf8vs1p+weB+2KMm4D70seS1FZKI0UAl1i3MBNkSWoh+WKBWkcHY+t7mx2KMiqEsB74CeBzk5rfBXwkxjgGEGPclbZfCdwSY6zFGL8B9IQQ1gKXA9tijHvSWeBtwOb0ue4Y4wMxxhpwC3DVpLG2pNdbJrVLUtsoV0p0dixn1dJVzQ5Fx8kl1pLUQpLCQD057vB/35rW7wO/CnRNans28KYQwk8CPwTeG2P8b2AdUJ7UbyhtO1b70BTtAKfGGHcCxBh3hhDWzBRokuTo6emcw1s71lj5eRurkYy7sYy7sdox7p0Ht7Nx5UZWrlw+z1HNTjt+5vPNf2FJUgtJigWXV2taIYTXArtijN8KIVww6aklwMEY47khhJ8CbgJ+HMhNMUztONqPS7VaY3j4wPHe/jQ9PZ3zNlYjGXdjGXdjtWPcA7sLrFuxvmnvux0/88lWr+6audMMXGItSa2iViMpDHhAl47lFcDrQwhF6vuMLwohfJ76TO9fp31uB16UXg9R35s8bj2wY4b29VO0AzyWLsEm/b0LSWojtVqNkjWQW54JsiS1iNzePeRH9jmDrGnFGK+PMa6PMfYD1wD3xxh/Fvhb4KK026uB/0qv7wSuDSHkQgjnA/vSZdJbgctCCCvTw7kuA/5/9u48zsrx/+P468yZrdlbaZUll32LCkkKJSVLpfhasxQRSQqJbFmivkh8lWw1lTVkbVGWVMKXcP2k2UqKptmb7cz5/XHu+ibTfmbuc868n49HD2eucy/vM6bOfM5139fnI+e5QmNMB2cF7MuBd7Y51hXO4yu2GRcRqRPyy/IoLC+gVXJrt6PIPtAl1iIiYWLrCtatVSDLHhsHvGaMuRUoAq5xxucSaPG0ikCbp6sArLW5xpj7gWXOdmOttbnO48H8r83TB86fLeeYZYwZCGQTaCklIlJnqMVTZFCBLCISJrb2QNYMsuwGa+1CYKHzOI/Aytbbb+MHbtzB/lMJ3Ku8/fhy4KhqxjcCXfcls4hIOMsqyAKglS6xDmu6xFpEJExsLZBbqbeiiIhIqNkyg9xKPZDDmgpkEZEw4c1Yja9Zc6hXz+0oIiIisp2cwiySY1NIjUtzO4rsAxXIIiJhwpuZoRWsRUREQlR2QRYtk1vh8VTXEU/ChQpkEZEw4c1YrfuPRUREQlROYTattEBX2FOBLCISDoqKiPpzg2aQRUREQlCgB3I2rVJ0/3G4U4EsIhIGtIK1iIhI6NpUlktxRZFaPEUAFcgiImFgS4FcpRlkERGRkJPttHhqqRWsw54KZBGRMODNWA2gS6xFRERC0NYWT7rEOuypQBYRCQPezAyqGjbEn5LqdhQRERHZTnZBoEBumdzS5SSyr1Qgi4iEAW/mas0ei4iIhKjswkxS49LUAzkCRO9qA2PMVKAnsMFae5Qz1he4FzgcaGetXe6MtwZ+Bqyz+xJr7SDnubbANKAeMBcYaq31G2MaADOB1kAm0M9au8kY4wEmAj2AEuBKa+0K51hXAHc753jAWvvSXn8HRETCgDczg4p2HdyOISIiItXIKcjWAl0RYndmkKcB3bcb+xG4EFhUzfa/WWuPc/4M2mb8WeA6oI3zZ8sxRwLzrLVtgHnO1wDnbLPtdc7+OAX1GKA90A4YY4ypvxuvQ0QkPJWVEbUmRzPIIiIiISrQA1n3H0eCXRbI1tpFQO52Yz9ba+0OdvkHY0xTIMVa+5W11g+8DJzvPN0b2DID/NJ24y9ba/3W2iVAmnOcbsAn1tpca+0m4BP+WcCLiEQMb042Hr9fLZ5ERERCkN/vJ6cwm5YpmkGOBLu8xHovHGiM+RYoAO621i4GmgNrttlmjTMGsJ+1dh2AtXadMaaJM94cyKlmnx2N75TX6yEtLWEvXk51x4oK2rFqk3LXLuWuXZGc27Mh8M9nwtGHUy+EXmMkf89FRER211+b/6KksoRWusQ6IgS7QF4HtLLWbnTuOX7bGHMk4KlmW/8ujrWjffbmWPh8fvLySna12W5JS0sI2rFqk3LXLuWuXZGcu97KX0gC8ho1xx9CrzGSv+e7o3Hj5CCkERGRcJdTGOiB3CqltbtBJCiCuoq1tbbMWrvRefwN8BtwKIFZ3hbbbNoC+N15vN65dHrLpdgbnPE1QMtq9tnRuIhIRIrKzKAqMQl/o0ZuRxEREZHtbOmBrEW6IkNQC2RjTGNjjNd5fBCBBbZWO5dQFxpjOjirU18OvOPsNge4wnl8xXbjlxtjPMaYDkC+c5yPgLONMfWdxbnOdsZERCKSN2N14P5jT3UX0IiIiIibsgqcGWQVyBFhd9o8zQA6A42MMWsIrCCdCzwFNAbeN8Z8Z63tBnQCxhpjKgEfMMhau2WBr8H8r83TB84fgHHALGPMQCAb6OuMzyXQ4mkVgTZPVwFYa3ONMfcDy5ztxm5zDhGRiOPNzMB32BFuxxAREZFq5BRm0yC+AUmxuvUmEuyyQLbWDtjBU29Vs+0bwBs7OM5y4Khqxs+hVAoAACAASURBVDcCXasZ9wM37uBYU4GpO04tIhIhfD68WZmUn9PT7SQiIiJSjZzCLFqqxVPECOol1iIiElxRv6/FU1GhHsgiIiIhKrsgS/cfRxAVyCIiIcybsRpABbKIiEgI8vv9rCnMUYEcQVQgi4iEMG9mBkBgkS4REREJKRs2b6DUV0qrFF1iHSlUIIuIhDBvxmr8sbFUNW3mdhQRERHZTo5WsI44KpBFREKYNzMD3wGtwet1O4qIiIhsJ7swUCC31AxyxFCBLCISwrwZq3X/sYiISIjKKcgG0D3IEUQFsohIqPL7AzPIuv9YREQkJGUXZtOoXiMSYxLdjiJBogJZRCREeTZswFNSrBlkERGREJVdkKnZ4wijAllEJERtWcG6SjPIIiIiISmnMJuWybr/OJKoQBYRCVHeTPVAFhERCVVV/irWFOaoxVOEUYEsIhKivBmr8UdF4WupN14REZFQs774D8qrynWJdYRRgSwiEqK8mRlUtWgJsbFuRxEREZHtZBcGVrBWD+TIogJZRCREeTNX42ut+49FRERCUY7TA7lVSmt3g0hQqUAWEQlR3swM3X8sIiISorb0QG6R3NLlJBJMKpBFREKQJz+PqNxcFcgiIiIhKrswi8b1mlAvup7bUSSIVCCLiISgLS2efGrxJCIiEpKyC7O1gnUEUoEsIhKCvBlq8SQiIhLKcgqytEBXBFKBLCISgrbOIKtAFhERCTm+Kh9ri9bQMlkzyJFGBbKISAiKyliNr8l+kJjodhQRERHZzh/F66ioqqBlimaQI40KZBGREOTNzKBK9x+LiIiEpJytPZA1gxxpVCCLiIQgb8ZqXV4tIiISorIKMgFopRnkiKMCWUQk1GzejPePdVrBWkREJERtmUFunqQeyJFGBbKISIjxZmUCWqBLREQkVOUUZrN/YlPio+PdjiJBpgJZRCTEbG3xpBlkERGRkJRTmE1LtXiKSCqQRURCjFo8iYiIhLbsgiwVyBFKBbKISIjxZvxGVVoa/voN3I4iIiIi26msqmRt0RqtYB2hVCCLiIQYb2aGZo9FRERC1Lri3/H5fbRKUYEciVQgi4iEGLV4EhERCV3ZBVkAusQ6QqlAFhEJJRUVRK3J0QJdIiIiIWpLi6eW6oEckVQgi4iEkKicbDw+H77WKpBFRERCUXZBFh48tFAP5IikAllEJIRsWcG6SjPIIiIiISm7MIumic2I9ca6HUVqgApkEZEQsrUHsu5BFhERCUk5hdm6vDqCqUAWEQkh3swM/PXqUbXf/m5HERERkWrkFGSrxVMEU4EsIhJCvJnOCtYej9tRREREZDsVvgp+L16rGeQIpgJZRCSEBHog6/5jERGRULS2aA1V/irNIEewaLcDiIiIo6oKb1Ym5V3OcjuJhDljjBdYDqy11vbcZvwp4CprbZLzdRzwMtAW2AhcbK3NdJ4bBQwEfMDN1tqPnPHuwETAC7xgrR3njB8IpAMNgBXAZdba8pp/tSIitWdriyf1QI5YmkEWEQkRUX+sw1Naqh7IEgxDgZ+3HTDGnAikbbfdQGCTtfYQ4EngEWfbI4D+wJFAd2CSMcbrFN7PAOcARwADnG1x9n3SWtsG2OQcW0QkomwpkFulaAY5UqlAFhEJEVtaPGkFa9kXxpgWwLnAC9uMeYHHgBHbbd4beMl5/DrQ1RjjccbTrbVl1toMYBXQzvmzylq72pkdTgd6O/t0cY6Bc8zza+L1iYi4KbsgkyhPFM0Sm7sdRWqILrEWEQkRW1s8aQZZ9s0EAoVw8jZjQ4A51tp1xphtt20O5ABYayuNMflAQ2d8yTbbrXHG2LL9NuPtnX3yrLWV1Wy/Q16vh7S0hN18Wbs6VlTQjlWblLt2KXftisTcf5T9TovkFjRumFrLqXZPJH7Pa5sKZBGREOHNzMAfHU1V8xZuR5EwZYzpCWyw1n5jjOnsjDUD+gKdq9mluuXS/TsZr+7Ks51tv1M+n5+8vJJdbbZb0tISgnas2qTctUu5a1ck5v5t42paJLUK2dcVid/zPdG4cfKuN9oFXWItIhIiojJW42vZCqL12aXstVOB84wxmQQuf+4CrAQOAVY54wnGmFXO9muAlgDGmGggFcjddtzRAvh9J+N/AWnOMbYdFxGJKNkFWVqgK8LptzARkRDhzcygSpdXyz6w1o4CRgE4M8jDt13F2hkvchblApgDXAF8BfQB5ltr/caYOcB0Y8wTQDOgDbCUwExxG2fF6rUEFvK6xNlngXOMdOeY79ToixURqWVlvjL+KF6nAjnCaQZZRCQU+P14M1ZrgS6pbVOAhs6M8jBgJIC1diUwC/gJ+BC40Vrrc+4xHgJ8RGCV7FnOtgB3AMOcYzV0ji0iEjHWFq3Bj18rWEc4zSCLiIQAT24uUYUFWqBLgsZauxBYWM140jaPSwncn1zd/g8CD1YzPheYW834agKrXIuIRKScAqfFU7IK5EimGWQRkRDgzfgNAF9rFcgiIiKhKLswC4CWKbrEOpKpQBYRCQFbeyBrBllERCQk5RRk4/V4aZrYzO0oUoNUIIuIhABvxmr8Hg++VrpsS0REJBRlF2bRPLkl0VG6SzWSqUAWEQkB3swMqpo1h/h4t6OIiIhINbILsmilFawj3i4//jDGTAV6AhustUc5Y32Be4HDgXbW2uXbbD8KGAj4gJuttR85492BiYAXeMFaO84ZP5BAS4gGwArgMmttuTEmDngZaAtsBC621mbu7BwiIuHKm5mhFaxFRERCWE5hNl1anel2DKlhuzODPA3ovt3Yj8CFwKJtB40xRxDoiXiks88kY4zXGOMFngHOAY4ABjjbAjwCPGmtbQNsIlD44vx3k9Or8Ulnux2eY3dfsIhIKPJmrNb9xyIiIiGqtLKU9SV/qMVTHbDLAtlauwjI3W7sZ2utrWbz3kC6tbbMWpsBrCLQ8qEdsMpau9paW05gxri3McYDdAFed/Z/CTh/m2O95Dx+HejqbL+jc4iIhCVPUSFRf/2pGWQREZEQtbYoB4CWusQ64gX7DvPmwJJtvl7jjAHkbDfeHmgI5FlrK6vZvvmWfay1lcaYfGf7nZ1jh7xeD2lpCXv0YnZ8rKigHas2KXftUu7aFc65U/9aB0D8kYcTF0avIZy/5+GYW0RE3JNVEGjxpB7IkS/YBbKnmjE/1c9U+3ey/c6OtbN9dsjn85OXV7KrzXZLWlpC0I5Vm5S7dil37Qrn3CU//EwqUNikGZVh9BrC+XsejNyNGycHIY2IiISDnMJsQDPIdUGwV7FeA7Tc5usWwO87Gf8LSDPGRG83/rdjOc+nErjUe0fHEhEJS96M1QC6xFpERCRE5RRkExMVw/6JTd2OIjUs2AXyHKC/MSbOWZ26DbAUWAa0McYcaIyJJbDI1hxrrR9YAPRx9r8CeGebY13hPO4DzHe239E5RETCkjcrg6pGjfAnp7gdRURERKqRXZhJ86QWeKO0NnCk2502TzOAzkAjY8waYAyBmdyngMbA+8aY76y13ay1K40xs4CfgErgRmutzznOEOAjAm2eplprVzqnuANIN8Y8AHwLTHHGpwCvGGNWOefrD7Czc4iIhCNvxmp8B2j2WEREJFTlFGbTUitY1wm7LJCttQN28NRbO9j+QeDBasbnAnOrGV9NNatQW2tLgb57cg4RkXDkzcygosMpbscQERGRHcguyKZb63PcjiG1INiXWIuIyJ4oKyNq7RrdfywiIhKiSipK+HPzBi3QVUeoQBYRcVNGBh6/H9+BB7mdRERERKqxptDpgZyiArkuUIEsIuIiz2+rAK1gLSIiEqpyCgM9kFuqB3KdoAJZRMRFntVOi6cDD3Y5iYiIiFQn2+mBfIAW6aoTVCCLiLhp9WqqkpLxN2zodhIRERGpRnZBFrFRsTRJ2M/tKFILVCCLiLjI89uqwP3HHo/bUURERKQaOYXZtEhuSZRHpVNdoP/LIiIu8vy2mirdfywiIhKycgqzaKXLq+sMFcgiIm7x+SAzQytYi4iIhLDsgiwt0FWHqEAWEXFJ1No1eCoqtIK1iIhIiCqqKGJj6UZaqQdynaECWUTEJbGffASgGWQREZEQtaUHsi6xrjtUIIuIuCD2vTkk3TWCqjPOoKJdB7fjiIiISDWyCzIBaKkZ5Doj2u0AIiJ1Tcz8T0m5/ioqj28Lb7wFlfqsUkREJBTlOD2QW2oGuc7Qb2UiIrUoeslXpF51Kb5DDyN/xuuQlOR2JBEREdmB7IJs4r3xNKnXxO0oUktUIIuI1JLo/35H6qV98TVvQd6st/Gn1Xc7koiIiOxETmE2LZNb4fF43I4itUQFsohILfDaX0jtdz7+1FTyZ7+Dv3FjtyOJiIjILmQXZtEyRfcf1yUqkEVEalhUZgapfXvjj44h7/U5VDVv4XYkERER2Q056oFc52iRLhGRGhS17nfS+vTGU1ZK3tsfUHXQwW5HEhERkd1QWF7AprJNavFUx6hAFhGpIZ6//iK1b288G/8i/8138R1+hNuRREREZDdlFwRWsG6lFk91igpkEZEa4CnIJ/XiC/BmZ5Gf/magpZOIiIiEja0tnlQg1ykqkEVEgq24mNRL+hL9y08UvDyDilM6up1IRERE9lBOYRaA7kGuY1Qgi4gEU1kZqVdeQvTypRQ8/yLlXc92O5GIiIjsheyCLBKiE2hUr5HbUaQWqUAWEQmWykpSrruK2M8WUDBxEuXnXeB2IhEREdlL2eqBXCepzZOISDBUVZF882DiPniPogcfoWzAv9xOJCIiIvsgxymQpW5RgSwisq/8fpJG3kb86zMpHjWazdcOdjuRiIiI7KOcwmy1eKqDVCCLiOyjxAfvo960KZTcOJSSW4a7HUdERET2UX5ZHvlleVqgqw5SgSwisg/qTRxPwr+fYPMVAym+ZyzoPiUREZGwl+20eGqVokus6xoVyCIieyl+ynMkPXgfpRf1o+iR8SqORUREIkROgVMgawa5zlGBLCKyF+LSXyN51O2UdT+Xwn8/C1H651RERCRSZBdmAtBSM8h1jn6jExHZQ7HvvkPyLTdS3ukMCp5/EWJi3I4kIiIiQZRTkE1iTBL14xq4HUVqmQpkEZE9EDP/E1IGXU1l25PIf2k6xMe7HUlERESCLKcwm1bqgVwnqUAWEdlNMV99QepV/6LSHE7+9NmQmOh2JBEREakBWQVZavFUR6lAriO8q36FjRvdjiEStqK/W0HKpf3wtWhJ/qy38aemuR1JREREaoDf7yenMJuWybr/uC5SgRzhPAX5JI0aTv1TTyT6rDOhtNTtSCJhx/vLz6RefAH+Bg3In/0O/kaN3I4kIiIiNWRT6SaKKgrVA7mOUoEcqfx+Yt99m/qnnkT81P9Qfu55eH78gcQHxridTCSsRGWsJrVvb/yxceTNfoeqZs3djiQiIiI1KCs/E0CXWNdRKpAjUFR2Fin/6kfqwMupatyEvA/mUTD1FXxDbiLh+WeJnfex2xFFwkLU72tJ69sbT0U5+bPfoerAg9yOJCIiIjUsIy8TgFa6xLpOUoEcSSoqqPf0RBp0ak/sF59TNPYh8j5eSOUJJwJQ9dDDVB5+JMk3DcazYYPLYUVCm+fPP0nt2xtPbi756W/iO+xwtyOJiIhILdgyg6x7kOsmFcgRInrZ19Q/sxNJY0dT3qkzuZ8vZfOgIRAd/b+N4uMpmDwFT1EhyUMHg9/vXmCREObJzyP14gvwrsmhYPpsKo87we1IIiIiUkuy8rJIjk0hNU4LctZFKpDDnCc/j6QRt5LW82w8eZvInzadgpfTqWrRstrtfYcfQdGYB4ib9wn1Xphcy2lFwkBREakD+hBtfyb/xVep6HCK24lERESkFmXmZ9Aq+QD1QK6jVCCHK7+fuLffCCzC9fKLbL5uMJu+WEZ5j5673LX06mspO7s7iWPvwbvyx1oIKxImSktJveISolcsp2DyVCq6nOV2IhEREallmXlZtEzR5dV1lQrkMBSVmUFq/wtJue4qqpo2I+/jhRTfPw5/UvLuHcDjoXDCJKpS00gZdDVs3lyzgUXCQUUFKdddRezihRROeIbyXr3dTiQiIiK1zO/3k5WfqQW66jAVyOGkooJ6/36CBp3aE730a4oefIS8D+dTecxxe3wof6NGFD41mWj7C0n33V0DYUXCSFUVyTcNIu7D9yl8+DHK+l/qdiIRERFxQW5pLsUVxbRSD+Q6K3rXm0goiP56Ccm3DyX6l58pO/c8ih58ZJ/7sVac0ZWSQUNImPw05V3OpPzsc4KUViSM+P0kjRhG/JuzKbprDKUDr3c7kcg+M8Z4geXAWmttT2PMa8CJQAWwFLjeWlthjPEAE4EeQAlwpbV2hXOMK4Atn6A+YK19yRlvC0wD6gFzgaHWWr8xpgEwE2gNZAL9rLWbauHliogETWbBagBaqgdynaUZ5BDnydtE0m03U7/X2XiKish/ZSYFL766z8XxFsV3jaHiqGNIHnoDUev/CMoxRcKG30/i2Huo9/JUSm4exuaht7mdSCRYhgI/b/P1a8BhwNEECttrnPFzgDbOn+uAZwGcYncM0B5oB4wxxtR39nnW2XbLft2d8ZHAPGttG2Ce87WISFjw+/3MWfUWV35wKdFR0RzZ8Ci3I4lLVCCHKr+fuDdm0eCUE4mf/golg28id9HXlHcL8ixvXByFk6fgKSkh+aZBUFUV3OOLhLCECY+T8MxENl91DcV3jXE7jkhQGGNaAOcCL2wZs9bOtdb6rbV+AjPILZynegMvO88tAdKMMU2BbsAn1tpcZxb4E6C781yKtfYr51gvA+dvc6yXnMcvbTMuIhLSsgoyueT9Plzz8RU0SdiPRZcvppVmkOssXWIdgqJW/0byiGHELlpAxQltKZz5Fr6jj6mx8/kONRSNfZjk22+h3nOT2Dx4SI2dSyRU1PvPsyQ+fD+lfftT9PDjoFYOEjkmACOAf6zcaIyJAS4jMMMM0BzI2WaTNc7YzsbXVDMOsJ+1dh2AtXadMabJroJ6vR7S0hJ24yXtmtcbFbRj1Sblrl3KXbtCPXe5r5wJXz/Jg58/gDfKy+NnjueGE28kLiYWny88J41C/Xu+I6GUWwVyKCkvJ+GZiSQ88Sj+2DgKH36c0isHgtdb46cuvfwqYud/SuIDY6joeBqVRx9b4+cUcUvcjFdJuusOynr0onDiJIjSxTQSGYwxPYEN1tpvjDGdq9lkErDIWrvY+bq6T4b8ezG+V3w+P3l5JXu7+9+kpSUE7Vi1Sblrl3LXrlDOvWTdV4z47BZ+yf2ZHgf24qHTHqVZUnOKCsqJTosO2dy7Esrf850JVu7GjXezq89O6LfCEBHz1RfU73IqiQ/fT1m3Hmz6YhmlA6+rleIYCLR+evIpqho2InnQQCgJv79YIrsjds5bJN86hPLTz6DguakQrc8JJaKcCpxnjMkE0oEuxphXAYwxY4DGwLBttl8DtNzm6xbA77sYb1HNOMB65xJsnP9uCMorEhEJok2ludy6YAjnvdWNovIiXukxk2nnvEazpOCs7yPhTwWyyzy5G0m65UbSep+DZ/Nm8qfPpvCFl6jav2mtZ/E3aEjh08/hXfUrSffcWevnF6lpsZ9+RMrga6g8sR3506ZDXJzbkUSCylo7ylrbwlrbGugPzLfW/ssYcw2B+4oHWGu3vW5wDnC5McZjjOkA5DuXSX8EnG2Mqe8sznU28JHzXKExpoOzAvblwDvbHOsK5/EV24yLiLjO7/cz85fpnDK9Lem/vMYNx93M4gFL6dZaXVzk73Y5dWKMmQpsuWTrKGes2lYOzuVc7wAZzu5vWmvHOvt0J9BKwgu8YK0d54wfSOBT7gbACuAya225MSaOwOIfbYGNwMXW2kxnn1HAQMAH3Gyt/Wifvgtu8PuJmzWDpHvvwpOXR8mQWyi+7Q5ITHQ1VkWnzmy+cSgJT0+g/IyulJ/by9U8IsES8+XnpFx9GZWHH0n+9Nmu/10TqWWTgSzgK2MM/O/9eS6BFk+rCLR5ugrAWptrjLkfWObsP9Zam+s8Hsz/2jx94PwBGAfMMsYMBLKBvjX8mkREdsuqTb8yYtGtfL52EW33O4nHT5/IkY20SrVUb3euLZwGPE2gWN1iSyuHccaYkc7XdzjPLbbW9tz2AE4/xmeAswhcnrXMGDPHWvsT8AjwpLU23RgzmUDh+6zz303W2kOMMf2d7S42xhxB4FPxI4FmwKfGmEOttb69eP2u8P72K0kjhhG7+DMq2p5E4eMT8R0ZOn9Ji0feTcziz0geNoRNJ7SlqmkztyOJ7JPoFctJubQfvlYHkJ/+Jv6UVLcjidQ4a+1CYKHzuNr3e2cl6ht38NxUYGo148uBf7xpWWs3Al33OrCISJCVVpYyccV4nlrxJPViEnjs9AlcdsSVRHl0Ea3s2C5/Oqy1i4Dc7Yb3tJVDO2CVtXa1tbacwIxxb+fyrC7A69Uca9tzvA50dbbvDaRba8ustRkEPvVut6vXERLKykh47GHqn34y0d9/R+GjT5L3/ichVRwDEBtL4eQX8JSVkTzkerV+krDm/Wklqf0vxN+wEfmz38HfqJHbkURERKSGfZazgNNndmD88kfoeXBvvhiwnCuOvFrFsezS3q5Os7NWDicbY74nsGjHcGvtSqpvF9EeaAjkWWsrtxnfcof81n2stZXGmHxn++bAku2Otcu76t1uJeH5bCHeG2/E83+Wqn4X43t8PPH77098UBLtnj3K3fZYfBMmEnvdtTSY+ixVw2+v2XA7EUrLvu8J5a5d1eb+9VeiLz4fEhLwffwxKQcd5E64nQjX7zeEb/ZwzS0iIru2oWQDY764kzd+ncWBqQcxq9fbdG7Zxe1YEkaCvXzrCuAAa22RMaYH8DbQhr1rFxHUFhNutZLwbNxI0r13ET9zOr5WrSlMf5OKLmcGnqzlJdj3ePn03v1Iefd9Yu8ZTcGJJ1N53Ak1F24n6vpy9bUtUnJHrV1DWq9u+CsryXv9XXwN9q/1v3O7I1y/3xC+2UOplYSIiARHlb+KV396ifuXjKGkophhJ47glhOGEx9dm9NREgn29hqDals5WGsLrLVFzuO5QIwxphE7bhfxF5BmjInebpxt93GeTyVwqfeOjhVa/H7iZrxKg1PbEvfGLEqG3kbuoiX/K47DgcdD4fiJVDXZL9D6qajI7UQiu8Xz55+k9jkPT34++TPfwmcOczuSiIiI1JCfNq6k55tnM/yzoRzV8GgWXvwVI9vdreJY9sreFsjVtnIwxuzv3CeMMaadc/yNBFbBbGOMOdAYE0tgka05zuIgC4A+2x9ru3P0IdCqwu+M9zfGxDkrYLcBlu7l66gR3l//j9QLziVl6A34DjmUTfO/oPiuMZAQfpf0+dPqUzjpP3gzVpM0eqTbcUR2yZO3ibR+5+Nd9zv501+n8pjj3I4kIiIiNaC4opj7vhxN11kdycj/jae6TObN3u/Rpv6hbkeTMLY7bZ5mAJ2BRsaYNcAYdtzKoQ8w2BhTCWwG+jtFbaUxZgiBvopeYKpzbzIEVr9ON8Y8AHwLTHHGpwCvGGNWEZg57g9grV1pjJkF/ARUAjeGzArWpaUkTHichKeexJ+QSOETT1F6yWUQFd6LAVSc0pGSobeROOFxyrucSXmvXa3JJuKSoiJSB/TB+6sl/5WZVLbv4HYiERERqQEfZ37AqMW3k1OYzaWHX87ok++jQXxDt2NJBPD4/bu8fTciVFT4/DV5D3LMooUkjbiV6NW/UXpRP4ruewh/kyY7OII79um+u4oK0nqdjfe339i08EuqmrcIbridqOv3Oda2sM0dH4X/3HOJ+fJzCl54OWx6eIfr9xvCN3sQ70H+Bjhx3xPVXTX93hwOlLt2KXftqoncvxet5a7P7+D91XMw9Q/jsdMn0KHZKUE9R7h+vyF8s4fSe3N4T22GAM+ff5J8w7Wk9TkP/H7yZr9D4bMvhFxxvM9iYih4dgpUVpJ8w7XgC41JexEASkvxDuhP7OLPKJw4KWyKYxEREdk9lVWVPP/9JE6dcRLzsj7mrvZjmNfv86AXxyLBXsW67qiqIn76KySOHY2nuJjiYbdTMnQ41KvndrIaU3XgQRSNe5yUmwaR8NSTlNwy3O1IUpf5/UQvX0r8rHTi3n6DqPw8CseNp6zfALeTiYiISBB9t2EFwz+7hf/++R1dWp3JuNPG0zr1QLdjSYRSgbw3Vq4kbdAgYr7+ivKTT6XosQn4DjVup6oVZf0GUDr/ExIeeZDy006nsu1JbkeSOiYqO4v42enEzZpBdMZq/PXqUdajF9HXX0vpce3djiciIiJBUlCWz8NL72fqD/+hcUIT/nP2NM47+AI8nuq6vooEhwrkPVRv0lNEPzAGf3IyBRMnUdb/UqhLf0k9HooefZKY5ctIGTSQTQu+wJ+kXqBSszyFBcS9+w5xs2YQ++XnAJSfehoFtwynvFdv/EnJpKUlhGSfYxEREdkzfr+fd397m7s+v4MNJeu5+uhrGdVuNClxqW5HkzpABfIeivnqc/yXXEruyDH4GzVyO44r/KlpFEx6gbTe3UkaOZzCp59zO5JEIp+PmM8WED9rOnFz38NTWkrlQQdTPGo0pX0upqplK7cTioiISJBlFWQyctFtzMv+hKMbHcvL58zg+P3auh1L6hAVyHuo4JWZpKUl4K/jM1WV7TtQMmwEiY+Po7zLmZRd2HfXO4nsBu9PK4mfNYO4N2bhXf8HVWlplPa/lNJ+AwKX9NelKzZERETqiApfBc9+/xTjlz9ClMfL/ac+zMCjryc6SuWK1C79xMleKxk2gtjPFpB0+61UnNiOqlYHuB1JwpRnwwbi35pN3MwZxPz4X/zR0ZSfeTZF/S6h/KxuEBfndkQRERGpIV+vW8Ltnw3ll9yf6XFgLx467VGaJTV3O5bUUSqQZe9FR1Mw6T/U79KRlBuuJe/tuRCtHynZTaWlxH78Fo26hgAAIABJREFUAfEzpxM7/1M8Ph8Vxx1P4UOPUnZ+nzp7C4OIiEhdsak0l/u/GsOrP79Ei6SWvNJjJt1an+N2LKnjVM3IPqk6oDVFjz5ByuBrSJjwOCXDR7odSUKZ30/00q8Dl1C/8yZRBfn4mjZj8w03U9q3P77DDnc7oYiIiNQwv9/PLDuDe7+8i7yyPG447mZuP2kUiTGJbkcTUYEs+67son6Uzv+UhMfHUd7pDCrbqdWO/F1UVibxs9OJnzUDb2YG/oQEys49j9J+A6jo2Am8XrcjioiISC1YtelX7lg0jMVrP6Ptfifx2OkTOKrR0W7HEtlKBbIERdG4x4lZuoSUG65h0/zP8adoGf66zlOQT9yctwOtmZZ8id/joaJjJ4qHjaC853lqDyYiIlKHlFaWMnHFeJ5a8ST1YhJ47PQJXHbElUR5otyOJvI3KpAlKPzJKRQ8+wJpvbqRNGIYhZOnuB1J3FBZSexn84mbNYO4D94PtGY6pA3Fd94TaM3UoqXbCUVERKSWLVqzkBGf3crq/N+4sE1fxp76ME0SmrgdS6RaKpAlaCpPbEfJ7aNIHPcA5V3Poqxvf7cjSS3xrvzxf62ZNqynqn59Si+5LNCa6fi2as0kIiJSB60vWs8tn9zKG7/O4sDUg5jV6206t+zidiyRnVKBLEFVMvQ2YhbOJ+mO26g4qT1VrQ90O5LUEM/69cS/OZv4WTOIXvkD/pgYys/sRlG/AYHWTLGxbkcUERERF+SX5THtxyk88/1EisuLGXbiCG45YTjx0fFuRxPZJRXIElxeL4WT/kP9zqeQMnggeXM+gpgYt1NJsGzeTNxHcwP3FS+YF2jNdPwJFD78OGXnX4S/YUO3E4qIiIhL/ihex3PfT+KllVMpqiik20HduKf9g7Spf6jb0UR2mwpkCbqqFi0pGj+RlGuvJGH8OEpGjnY7kuwLv5/or5cQP2s6ce+8RVRhAb5mzdk85JZAa6ZDjdsJRURExEWrNv3KM99NZLZNp9JfSe+DL2DI8bdwWpuTycsrcTueyB5RgSw1oqz3hWye/ykJE8ZTcXoXKk4+1e1IsoeiMlYHWjPNTseblYk/IZGynk5rplNPU2smERGROu6b9ct4asUEPsh4jzhvHJcecTmDj72J1qm6xU7ClwpkqTFFDz5KzJIvSb7hWjYt+AJ/Wn23I8mulJTgeWM6adNeIubrr5zWTKdTfPsoynr0gqQktxOKiIiIi/x+PwtyPuWpFRP44vfFpMalcUvb27jm6ME0TmjsdjyRfaYCWWpOUhKFk6eQdu5ZJN1+K4XPv6jVjEOYp7CA1H4XEP3NMirbHErR3fdSdlE/qpq3cDuaiIiIuKyyqpI5v73FUysmsHLjDzRNbMZ9pzzEZUdcQVJsstvxRIJGBbLUqMrj21I88m6SHrg30Pqp/6VuR5JqbC2Ov/+Wylens+msc/VhhoiIiFBSUcKMX17l2e+fJrsgkzZphzLxjElcdGg/Yr3qWCGRRwWy1LjNNw4lduF8kkcOp7Jde3wHHeJ2JNnGtsVxwfPTSOjXD7SghoiISJ22qTSXF398gf/891k2lm7kxP3acf+pD9Ot9TlEeaLcjidSY1QgS83zeil8+jnqdz6Z5EEDyXvvE/XIDRGegnxSL75wa3Fc3vM8EtwOJSIiIq5ZW7iGyf99hldWTqOkspgzW53NzScMo33Tk/Ho6jKpA1QgS62oatacwieeJvXqf5H46EMU332v25HqvL8Vx/95ifJze7kdSURERFxic3/h6W8n8Mavs/D7/VzQpg9Djr+FIxoe6XY0kVqlAllqTXnP89h82ZXUe+pJyjt3oaJjJ7cj1VkqjkVE3FdQlk+CT7+KibuWrvuap799kg8z51Ivuh5XHjmQQccOoVXKAW5HE3GFbiCQWlU09mF8Bx9C8o3X4cnd6HacOilQHF+g4lhExCV+v59Xf3qJ414+guOeP4Yv1i52O5LUMX6/n08yP6TXW93o+dZZfL3uK4afOJIVl/3EQ6c9puJY6jQVyFK7EhMpfG4qUX/9SfJtQ8HvdztRnfK/4vg7FcciIi74vWgt/d+7kGELb+LoxsdQ5a/ignfO5baFQykoy3c7nkS4Cl8Fs+wMOs88mUvn9mNNYQ4PdnyEFZf/xIh2d9KwXkO3I4q4TgWy1LrKo4+l+M4xxL0/h/hXX3I7Tp3xt+L4hZdVHIuI1CK/30/6L6/RKb0DX6/7inGdxvNW7/dZce13DD72Jl77+SU6prfjw4y5bkeVCFRcUczz30+i/WvHMWTe9QA83fU5ll76PdceM5jEmESXE4qEDhXI4orNg4dQ3ukMkkaPxPvr/7kdJ+L9ozju0dPtSCIidcYfxev419x+3Dx/MEc2OooFF3/J1UddS5QnioSYBO479UE+uHAe9eMacPkH/bnu4yv5s+RPt2NLBNi4eSOPLn2IE14+gru/GEmL5Ja81mMWCy/+in5mADHeGLcjioQcFcjijqgoCp+ejD8+nuRBA6GszO1EEctTkE9qv/NVHIuI1DK/389sm85p6e35fO0iHuz4CG/1fp8DUw/6x7bH79eWT/p+xh3t7mLu6vfoOONEZtkZ+HUrkuyFnMJs7lx8O21fOZLHl4+jfdOTee+CT5hzwYec1bq72jWJ7IQKZHFN1f5NKZwwiZgfvifx4fvdjhORthbH//2egimvqDgWEakl60vWc8WHl3DjvOs4tL5hQb8vuPaYwUR5dvyrV6w3lttOvIN5/T7n4LQ2DJl3Pf3fu5CcwuxaTC7h7KeNK7nh02tp9+qxTFs5hV4Hn8/i/kt5uUc67Zq2dzueSFhQgSyuKu/eg81XDiRh0r+JWTjf7TgR5R/F8Tnnuh1JRCTi+f1+3vr1dTrNaMeC7E+575SHmHP+hxyUdshuH8M0OIx3L/iIhzo+ytfrlnDajPa88N/JVPmrajC5hCu/38+S37/kkvf60Hnmycxd/R7XHDOIZZf+l6e6TsY0OMztiCJhRQWyuK7o3gepNIeRfNMgPBvV+ikYPPl5geL4h/+qOBYRqSV/lvzJwI8u5/pPruagtIOZ3+8LBh83BG+Ud4+P5Y3ycs0xg1g84GvaN+3AnZ+PoNdb3fi/XFsDySUcVfmr+CDjfc598yzOe7s73/25gpHt7ubby1dy/6kP0zy5hdsRRcKSCmRxX0ICBZOnErUpl+Rbb1Trp33kyc8LLMj1w38D9xyrOBYRqXFzVr1Fp/R2fJz5AaNPHsu7F3xMm/qH7vNxWya3Ir3nmzzd9TlWbfo/usw6lSeWP0q5rzwIqSUclfvKmfHzq3RKb88VHwxgQ8l6Hj7tcZb/60eGnTiC+vEN3I4oEtZUIEtI8B15FMX3jCXuw7nET5vidpywpeJYRKR2bdy8kes+vpJrPr6Clsmt+LTfYm46/haio6KDdg6Px0M/M4DFA5bR46CejFv6AGfNPp1v138TtHNI6CsqL+TZ757mpFePYeiCG4iJimXyWVNYcum3DDz6OhJiEtyOKBIRVCBLyNh87WDKu5xJ0pg78dpf3I4TdnRZtYhI7Xp/9buclt6O91e/y53t72HuRfM4rMHhNXa+JglNeP7sabx8TjqbynI5582ujPniLkoqSmrsnOK+TaW53LNwNMe/ciRjvryTg1IPJr3nG8zv9zkXtukb1A9jREQFsoQSj4eCf0/Gn5RMyvVXQ2mp24nCxtbi+McfAsVx9x5uRxIRiVibSnMZ/Mk1XPXhpTRNbMYnfRdxS9vhtVaodD+wB5/3X8qlh1/Bs98/xekzO7B4zWe1cm6pPVvahJ0yvS2PfDmOjs078eFF83nr/Pfp0uostWoSqSEqkCWk+Js0ofDfk4j+6UcSH7zX7ThhQcWxiEjt+SjzA05Lb887v73JiJPu5MOL5nNEwyNrPUdKXCrjO0/krd7vE+WJ4qI5vRi24Cbyy/JqPYsEX2Z+Bv3ePZ8b511H69SDWHbNN7zY/VVO2O9Et6OJRDwVyBJyys/sRsm1g0h4bhIx8z9xO05I+1txPPVVFcciIjUkvyyPm+YN4rK5F9OoXmM+6rOQ4SeNJMYb42quU5ufxsKLv2LI8bcw/ZdX6DijHXNXv+dqJtl7Fb4K/r3iSU6f2YFv1i9nXKfxvHfBxxzT5Bi3o4nUGSqQJSQVjx5L5eFHkjJkEKxf73ackOTJzyO1b+//FcfdznE7kohIRPo06yNOS2/P6/83k2EnjuDjPgs5ulHoFCz1outxz8lj+eiiBTSq15grP7yEgR9dzvoSvX+GkxXrl3PW66fzwJIxnNHyTL4YsIyrj7p2r9qEicjeU4EsoSk+noLJU/AUFRJ9bg9ivljsdqKQsrU4XvmjimMRkRpSUJbPLfNv5JL3+5IWl8aHF81nZLu7ifXGuh2tWsc2OZ6P+yzkzvb38HHmB5w24yTSf3kNv9onhrSi8kLuXHw757zRlU2luUzrPp1p57xG06RmbkcTqZNUIEvI8h1+BAXPT4PcjaRdcC4pAy7C++MPbsdynSdvk4pjEZEatiB7Hp3SO5BuX2PoCbfxSd9FHNvkeLdj7VKMN4Zb2g5nQb8vMQ0O5+b5g+n37vlkFWS6HU2q8WHGXDrOaMeUH57n6qOv5fMBS+lxUE+3Y4nUaSqQJaSVd+9B5cqfKbrnfmK+WUb9rh1JvuFaorIy3Y7mCk/epsA9xyt/pOBFFcciIsFWVF7IbQuHcvF7F5AYk8jcCz/lrg5jiPPGuR1tjxxSvw3vnP8B4zqNZ/n6ZZye3oHnvn8GX5XP7WgCrCv6nas+/BeXf9Cf1Lg05l70KQ+f9jjJsSluRxOp81QgS+irV4/NQ4aSu/R7Ng+5hbj33qHBKW1JvGsEnr/+cjtdrflHcXy2imMRkWBatGYhp888mdd+fokbjxvKvH6fh/WqwVGeKK4+6loW9/+aU5p1ZPQXo+j51ln8kvuz29HqrCp/FVN//A8d09sxL+tj7u5wL5/2XUTb/U5yO5qIOFQgS9jwp9WnePR95H79HaX9L6XelOdp0O5YEsY/AkVFbserUVuL459WqjgWEQmyoooi7lg0jD5zziPWG8u7F3zEmFPuJz463u1oQdEiuSWvnTubZ898gYz81XSd1ZHHlj1Mua/c7Wh1ys8bf6Lnm2czctFtHN+kLZ/1X8LNJwxzfSV0Efk7FcgSdqqaNqNo/L/ZtHgpFaefQeIjD9Kw/XHET3keyiPvzT5wz7FTHE99RcWxiEgQfbn2czrPPIVpP05h0LFDmN/vC07av73bsYLO4/Fw0aH9+HzAcnodfD6PLXuYM2efxjfrl7kdLeJtrtzMQ0vG0nV2RzLyf+OZrs8zu9fbHJh6kNvRRKQaKpAlbPnaHErBi6+yae6nVB7ShuRRw2nQ8STi3nodqqrcjhcUW4vjn1Uci4gEU3FFMXctHsH57/QgCg/vXPAhY099iHrR9dyOVqMa1WvE5LOm8FqPWRSUFdDjjTMZ/flIiiuK3Y4WkRatWUjnmSczYcXjXNQm8AFFX9Mfj8fjdjQR2QEVyBL2Kk9sR/7bc8mfPht/vQRSrr+atLM7E7NwvtvR9snfimNdVi0iEjRL1n3FGTNP4T8/TObaowex4OIv6dD0ZLdj1aqzWndn8YCvueLIq3nuv5M4Pb0Dn+UscDtWxNi4eSM3zRtEnznnAfD6eXN4qutkGtZr6HIyEdmVaLcDiASFx0P5md0oP+NM4t6YReIjD5LW73zKT+tM8eh7qTzuBLcT7pF/FMdndXc7koiEEWOMF1gOrLXW9jTGHAikAw2AFcBl1tpyY0wc8DLQFtgIXGytzXSOMQoYCPiAm621Hznj3YGJgBd4wVo7zhmv9hy19JJ3y+bKzTz09Vie/34SLVMO4K3e73Nq89PcjuWa5NgUHj39SS5o04dhC2+i77u9GXDYv7jvlAdJi6/vdryw5Pf7mf1/6dzzxSgKygu4te1wbml7e8RfmSASSXarQDbGTAV6AhustUc5Yw2AmUBrIBPoZ63dZIzxEHjj7AGUAFdaa1c4+1wB3O0c9gFr7UvOeFtgGlAPmAsMtdb69+YcUsd5vZT1G0BZ7wupN+0FEp58jPpnd6b0/AspHjmaqoMOdjvhLnnyNpHapzfRv/yk4lhE9tZQ4GdgS8+YR4AnrbXpxpjJBArfZ53/brLWHmKM6e9sd7Ex5gigP3Ak0Az41BhzqHOsZ4CzgDXAMmPMHGvtTzs5R0hY9sfX3Dx/ML/lreKqo65h9MljSYpJcjtWSDi52aks6Pcl45c/wtPfTuDTrI8Z12k8vQ7u7Xa0sJKRv5rbP7uVRWsWcOJ+7Rjf+d8c3vAIt2OJyB7a3UuspwHb/5Y+EphnrW0DzHO+BjgHaOP8uQ7nzdEpdscA7YF2wBhjzJaPJ591tt2yX/e9OYfIVnFxbL7+RnKXfk/xsNuJ+/hDGnQ8iaQ7huFZv97tdDv0t+J42msqjkVkjxljWgDnAi84X3uALsDrziYvAec7j3s7X+M839XZvjeQbq0ts9ZmAKsIvHe3A1ZZa1c7s8PpQO9dnMNVpZWl3PflaHq91Y2yyjJeP28Oj3R6QsXxduKj47mrwxg+7rOQ/RObMvCjy7jyg0tZX/yH29FCXoWvgn+veILT0zvw7YZveKTTE7x34ccqjkXC1G7NIFtrFxljWm833Bvo7Dx+CVgI3OGMv2yt9QNLjDFpxpimzrafWGtzAYwxnwDdjTELgRRr7VfO+MsE3lQ/2NNzWGvX7cFrlzrAn5JKycjRbL7qOhLHjyP+lWnEz5xOyaAb2XzjUPzJKbs+SC3xbMoNXFa9pTg+s5vbkUQkPE0ARgDJztcNgTxrbaXz9RqgufO4OZADYK2tNMbkO9s3B5Zsc8xt98nZbrz9Ls6xQ16vh7S0hN1/ZTs9VtQ/jrXs96UMfHcgv2z8mWuOu5ZxXR8hJS50/t2H6nO76bS0k/n64K958usnuH/xWDqmn8SjXR/jymOv+tvCUqGWe3cFO/fXa5cweO5gfvzzB843F/Dk2RNonrzLH/09pu937QrX3BC+2UMp977cg7zfloLUWrvOGNPEGd/6ZuvY8ia5s/E11YzvzTlUIEu1/PvtR9GjT1IyaAiJ4+4n8YnHqPfSVEpuGc7mK6+BuDhX86k4FpFgMMZsuR3qG2NMZ2e4uuVy/bt4bkfj1V15trPtd8rn85OXV7KrzXZLWlrC1mOV+cp4fNk4nvr2SfZPaEp6zzfp0upMqjZD3ubgnC9Yts0dSq49fAhdmnZj2MKbuX7udbz6/Ws83nni1tZEoZp7V4KVu7C8gIe+HsvUH/5D08RmvHxOOt0P7AE+auT7Ute/37UtXHND+GYPVu7GjZN3vdEu1MQiXXv6Zrs3b6p7vE9Nf0odDpQbOOFomDWLihXf4L1zFEmjR5H4wmR8Y+7DP2AAeL3BOQ97kDs3l+j+F8IvP+Gb/ToJ5/TAzf9L+jmpXeGaG8I3e7jm3k2nAucZY3oA8QTuQZ4ApBljop0Z3hbA7872a4CWwBpjTDSQCuRuM77FtvtUN/7XTs5Rq77f8C03zx/Mz7k/cclhlzH21IdIiUt1I0rYOzitDW/1fp9XfprGfV+OpvPMk7mj3d1cf8wNbkdz1dzV7zFq8XD+KF7HNUdfz6j2o0mK3fdfykUkNOxLgbx+y2XNziXUG5zxHb2pruF/l0tvGV/ojLeoZvu9OccO1dSn1OFEubdx0OGQ/jYxC+eT+MC9xFx9JZWPPUbx6Hsp73o2BKE/4e7k9mzKJbVPb7A/U/DSdMpP7gwu/z/Sz0ntCtfcEL7ZQ+lT6mCz1o4CRgE4M8jDrbWXGmNmA30I3DN8BfCOs8sc5+uvnOfnO4tkzgGmG2OeILBIVxtgKYEPqNs4K1avJbCQ1yXOPgt2cI5aUe4rZ9zSB5j4zXgaJzRh+rmzOfMAXY2zr6I8UVxx5NWcdUA3Rnx2K/d+eRfvrHqDh7o+hEk6pk7dy/170VpGLb6dDzLe48iGR/Ni91c5Yb8T3Y4lIkG2L32Qt7ypwj/fbC83xniMMR2AfOcy6Y+As40x9Z3Fuc4GPnKeKzTGdHAW+bicf75x7+45RPZIRecu5H28kILnpuLZXELqJX1JPb8H0cuX1vi5txTH0VuK465n1/g5RaTOugMYZoxZReB+4SnO+BSgoTM+DGcxTGvtSmAW8BPwIXCjtdbnzA4PIfCe/jMwy9l2Z+eocT/+9QMnv9iBJ5Y/ykWH9mPRxUtUHAdZs6TmvNJjJs+dNZWcwmzOmdGdQ15oQZdZHbn9s1tJ/+U1fsv7Fb9/l1fWhx1flY8pPzxPxxntWJgzj9Enj+XjPgtVHItEKM/u/ENmjJlBYPa3EbCewGrUbxN482wFZAN9rbW5TpH7NIGVqEuAq6y1y53jXA3c6Rz2QWvti874ifyvzdMHwE3Op9EN9/QcO1JR4fNrBlm5d6q8nPhXppE4/hGi/vqTsh69KL5rDL42h+5632rsLPfW4vj/fgnccxxCxbF+TmpXuOaG8M0exBnkbwD9hrwPgvXe3P6149hcWcKjnSYE7gMNI+H496iwvIAfC1bw2erPWf7HMlasX05RRSEA9ePq03a/k2i7/0m03e8kTmjSNqQucd/T7/fKv35k+Gc388365XRu2YVHOz1J69QDazBh9cLx5wSU2w3hmj2U3pt3q0COBCqQlXu3FRWRMPlp6j3zbzybSyi95DJKbh9FVdNme3SYHeXetjjOf2k6FV3OClbyoNDPSe0K19wQvtlD6U24rgvWe/OqTb9ySNMDoDQ2CKlqVyT8PfJV+fg17/9Y/sdSvlm/jG/WL8Pm/oIfPx48mAaH0Xa/kzhxv3a03f8kDq1viPLsy0WMwcm9M5srNzN+2SNM+v7fpMWlMfbUh7moTb+/reRdmyLh5ySchGtuCN/sofTeXBOLdImEt6QkSoaPZPMVA0mY8Bj1pk0h/vWZbL52MCU33YI/rf6uj7EDoV4ci4iEo0PqtyEtPoG80vD7pTASeKO8HNbgcA5rcDj/OiJwZ1xBWT4rNnzD/7d371FWlecdx78nzCDDXa6DiKJCXlFBkeBdQzWJqEHUJEaaRqpJaZZZy9BYEys1EgmxXhopGiRRo8QoQasmVGtjSquiLiM3NS7IayQRUZlBoMhdbtM/3j06TgY9A8OcPcP3sxYL5lz2+c1m7/c5zz7v3mdB9TzmV73AY3+azX1Lfg5Ap7adObbXMIZVDmd47+M4tven2L9dt1L+Ch/y1PL/5cqnxvP6uj8z5vC/4dqTJtGtXfdSx5LUTGyQpV2o6dmTjZNvZPO4y+hww2QqbptCu3vvZtPlV7D5a+OgoqJRy7M5liTtKzrv14UR/U5nRL/TAaipqWHp2teYX/0CC6rnM7/qBaYsuJmdNTsBOKzrgPQJczY9e1C3Iyj7RPO+TV21eRXXPns1D776Sw7tchgPj36UU/qe1qwZJJWeDbL0MXYe3J/10+5g02WX02HyRDpedw0Vd05n03euZsuFY6Ds43cjm2NJ0r6sUCgwYP+BDNh/IBcd/hUANmzbwEsrF70/NXvOG08wK94PQPuyDgztdWyaml2ZGuee7XvulWw1NTXMivcz8bkJrN+6nm8Pu5Lxw66kXVm7vfJ6kvLNBlkq0o6jBrNu5kOUPzuXDpO+R6fx36Ri2lQ2TpjI1pFn7/KroQprVqfm+I/R5liSpEzH8o6c3PdUTu57KpAa1WXrXn//POb5VS8w7aWpbF+0HYCDO/fPzmVOTfOR3QdT3qZ8jzL86d2lXPnkeOa+9RTDK4/nX0dM5fBug/b4d5PUctkgS4207eRTWfv4/9D20dl0+OH36TJ2DNuGH8/Ga77PthNO+tBjbY4lSSpOoVCgf5dD6N/lEL7wyQuBdLGsl955kQVVqWl+7u1nePiPDwLQrk07ju41NE3L7j2c4ZXHUdmhT1GvtXXHVqa9OJUfzb+R8jZtufG0W7j4yEtKdvEwSflhgyztjkKBraNGs/Wsc2h3/720v+l6up47kvc+N5KNEyayY9ARsLpuczyTbad/ptSpJUlqUSrKKjihz4mc0OdEIH3K/PaGt5hf/QLzq+exoGoed748nWk7pwLQt+OB2bTs1DQP7nH0X0yVnlf1O/7xyW+xZM1iRh12HpNPuaHoxlpS62eDLO2JsjK2XHwJW774ZSruuJ32t05h/xEn8t6FYyj7w2KwOZYkqckUCgX6djqQvp0OZPSACwB4b8d7vLLqZRZUzXv/ImCzlz4CQNtPtGVwzyHvf8q8aPU8frJwOgd07Mu9Z8/izP5nlfLXkZRDNshSU2jfns3fuoItX/1b2k+9hYq7fgJgcyxJ0l62X5v93m+Ax3EZANUbq9InzNmfexffw09fvp0CBf5uyDe46rh/pmPbTiVOLimPbJClJlTTrTsbJ/6AzX9/GZ0L29lWeVCpI0mStM/p3aGScw4dxTmHjgJg245tLF79CpXde9C7Tb8Sp5OUZzbI0l6ws88B0LU9rN1U6iiSJO3zytuUc3SvoXTt2p611mZJH8FL9UmSJEmShA2yJEmSJEmADbIkSZIkSYANsiRJkiRJgA2yJEmSJEmADbIkSZIkSYANsiRJkiRJgA2yJEmSJEmADbIkSZIkSYANsiRJkiRJgA2yJEmSJEmADbIkSZIkSYANsiRJkiRJgA2yJEmSJEmADbIkSZIkSYANsiRJkiRJgA2yJEmSJEmADbIkSZIkSYANsiRJkiRJgA2yJEmSJEkAFGpqakqdobm8AywrdQhJUqtxMNCz1CFaOGuzJKkp7XFt3pcaZEmSJEmSdskp1pIkSZIkYYMsSZIkSRJggyxJkiRJEmCDLEmSJEkSYIMsSZIkSRIAZaUOsKdCCP2AnwOVwE7gpzHGfwshdANmAf2B14ELY4z/F0I4HLgbOBaYEGO8OVtOyB5f61DgezHGKQ285s+AzwMrY4wGRJkGAAAIeUlEQVRH1bn9S8BEYBBwXIxx/i4y3wSMAmqAHsAaYDvw78B3gNey3DuAeTnMfj5pfdcAbwLTs3V+CvAoUAFsBQbGGKvynBtYBVxFWt9tsz+nxRjn5jz3NNJ2/3lgP9LXpByX9+0EuD3Ldi5pXf8e+GyOck8CvggcCBSAt0jremqW/6tAG2ARcFYz5K4dK7YCS4FLYoxrG3h+N+BXwKdI4+DyLO9vgHuBYcBq4EWaZzxpTO5ZwACgC+krf7YDC4BjSOu6L/Au8GpOs/fnwzVmNDCJ9P+wHRgfY3ym/vNbO2tzPsZca7O1ucjc1mZrczG5VwFXAweResgXgbNzlrtJ6nJr+AR5O3BFjHEQcALwzRDCEaSBdU6McSAwJ/sZUsG7HLi57kJickyM8RjSBrsJeGQXr3kPMLKB218BLgCe/pjMvwWOAk4HHiNthCeQdvA3gceByTHGrjnNPgI4jTQ4/RdpnQ8GHgbuiTHuB9wCfDvvuUmD6ePAZNJAsIa0c+Y993hSAzEZ6Ep6M/fDFpD7GmBIlrsfqUjnafu+ibRffppUBJ7Jco8DPgtcl913QDPl/i1wVIxxCKlB/KddPP8qYC5wCvADPljfPYAlwJPADTTfeNKY3HOAk4Bf8MFYOIK0zh8jjStVec3eQI2ZAxydZbgUuHMXz2/trM05GHOtzdbmInNbmxuXe1+ozQ3lrgH+m7SdXEA6gJ233E1Sl1t8gxxjXBFjXJj9ez1pg+sLjAZmZA+bAZyXPWZljHEesO0jFnsGsDTGuGwXr/k0aUOof/uSGGMsIvMTMcbtMcYVwK+BA7Psr5GOyOQ9+5vZOn8e6EVa5+eSjpbekD309uz3yHvuutvKGNKb9JawvvcnFbFfkD4VWAN8pgXkHkIqDDNijCuBPwMX5Sj3ujpjSgfS0colpCOX7bLcz2e3f6EZcj8RY9ye/fg86eh5Q0YDt2W5ZwBnZ7krgOOBhdnjmms8aUzuGdlYeD1wXjYWLgI6ZfffmD0/l9mzf9fNtiHGWJPd3oH0hmKfY20uSXZrc+lzW5v3Tm5rcz5yv0NqYGdkzy/PYe4mqcstvkGuK4TQHxgK/A7onRU5sr97NWJRFwEzmzxgwy4FHs+yH0nKeRjwyxDCqS0g+zzSOt9O2uHvCSEsJB1xbwm5624rXwbuoGXkvpk0DWoR8AbpzU+PRiyrVLnnAN2Bd0IIhwCDs5+LtddzhxAmhxCWA18hbQ9DSW+OO9WOKaRpc829nVxK+kSlIfXHu0rqbN/Ahjr35Tl3r/rjOOlTo8dbQvbaO0II54cQ/kD6FPLSPczQ4lmbAWtzMazN1uZdsjZ/SElzZ7d9jVTj8px7t+tyq2mQQwgdgYdI88rX7cFy2pKOuD7YVNk+4rUmkIrXr0jZ/4E0r38DaQrU/SGEzo1YXnNnryEV2/Gkc7LakAauU0jnuBR1jnspc9duKyGE44FNMcZXGrGsUq7vQdldBwCHAFdQ5P5c4tzTSOeAzAemAM81YlnNkjvGOCHG2C97nUf5YPveLU2Ru85YcV8Rj+1IOkJa8rGwMbnrqDuOl5GK8Hcb+bqlyg5AjPGRGOPhpKPXk3Y3Q2tgbS75mGtt3ouszdZmWnltbih3COGvaGRtbml1ucVfpAsghFBOKmL3xRgfzm6uDiH0iTGuCCH0AVYWubizgIUxxups2f2A/8jumx5jnL4b+e4mHXl5O8Z4dnbbWNInI2fWyf5Adl818DbpRPQTc5p9FLA+y/1wCOEi0puH8hjjphDC06Sj7bnOnT28mrSjz8zxtlJ/ff+YdGGHHtk2vpB0/k2uc2e3LyNdRGNFCGEeacpObnJnt5eTzncqZOv7TGB97ZgCHEwzbSd1xoozaqcINZC7Ott2V2XLXlNv++4IbGjO7bsxubNtoR/pk5fabXxI9vPXY4yrc569wWwxxqdDCIeFEHrEGFcVmb3VsDaXJLu12drc6NzZ7dZma3MxudeSLsb1OVKNzl3upqjLLb5BDiEUgLuAJTHGH9W5azYwFviX7O9fF7nIMdT5+D/GuJx0wYXdFmO8pF7mkaSjLp8GbiPLHkLoSZp7P5t0xHog6eI1ecz+e2BFnXX+G2AL8PUQwvUUd9GFPOSGtL7HkXayvG4r9XO/QRq4xoYQbiUVjP/Me+4QQnvS1JixIYQFpKlnxR5NbI7cA0nnG95FOpr+bHbXbNKFQMaGEJ4kndNX7DSh3c5dd6yIMW7aVW4+GO+OIJ0TdE+9+4aSLrLRLNt3Y3OHEG7IctWOhQeRLiz0IHAq6f8hl9mpV2NCCANI51jVhBCOJb2BWF1k7lbD2lyy7NZma3Ojc1ubrc3F5M5qcxdgZozx1RDCVTnNvcd1uVBT07KvHxLS1xfMJe3sO7ObrybNk3+ANC3qDeBLMcY1IYRK0hSSztnjNwBHxBjXZQPEcuDQGOO7H/GaM0lXAexBOgJ0bYzxrhDC+cCtQE/SEZYXY4xnNvD810g78RbS15usyV63C2kqzno+mM61JIfZO5Hm9W8BNpKu7ll72febSTtTFTC0heQuI11ufyX53FYayn0daec/I1vfbwDHt4DcU4AJpOlnBdJ5WqNylPshUsE6hLQfLiddcOJq0hvLvyZNV3wJGNkMuWvHitqB/PkY4zcaeH530hvhYdnrv06aenZT9qcXaX1vA0KMcVmOcj8AfJJ00Y3FWcbaT5NfJ31dQznpDVFz7JuNzV6/xnwXuDj7PTYDV8Z982uerM35GHOtzc2b29q8d3Jbm/ORu4p0Zf82pBr9HtA/Z+u7Sepyi2+QJUmSJElqCq3mIl2SJEmSJO0JG2RJkiRJkrBBliRJkiQJsEGWJEmSJAmwQZYkSZIkCbBBliRJkiQJsEGWJEmSJAmwQZYkSZIkCYD/B4h6Dus17p52AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1152x648 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图\n",
    "plt.figure(figsize=(16,9))\n",
    "\n",
    "plt.subplot(1,2,1)\n",
    "plt.plot(pv_daily, color='r')\n",
    "plt.title('PV Daily')\n",
    "\n",
    "plt.subplot(1,2,2)\n",
    "plt.plot(uv_daily, color='g')\n",
    "plt.title('UV Daily')\n",
    "\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# 按照小时\n",
    "pv_daily = data_user.groupby('hour').count()['user_id']\n",
    "uv_daily = data_user.groupby('hour')['user_id'].apply(lambda x: x.drop_duplicates().count())\n",
    "pv_uv_daily = pd.concat([pv_daily, uv_daily], axis=1)\n",
    "pv_uv_daily.columns=['pv','uv'] # 修改列名，列出所有的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pv</th>\n",
       "      <th>uv</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>pv</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.991304</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>uv</th>\n",
       "      <td>0.991304</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          pv        uv\n",
       "pv  1.000000  0.991304\n",
       "uv  0.991304  1.000000"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pv_uv_daily.corr(method='spearman') # pv，uv的相关系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pv</th>\n",
       "      <th>uv</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>pv</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.982451</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>uv</th>\n",
       "      <td>0.982451</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          pv        uv\n",
       "pv  1.000000  0.982451\n",
       "uv  0.982451  1.000000"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pv_uv_daily.corr(method='pearson')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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VADYRwUAKVNGOrvWr2brppWk/WFJ2/M7m3K2kFa8k03hmWyoVvDPywyKoWFOBI2K4mkQVpMG1erRMLExR9dpRmZ+Ol9u/JTPiyzrYn0n/PUyofOGcM4tPpaO9c6iTqtzKGzTDm/DRlDFJzMUEREREQkEFQBUANhHBQA5bF4v2VvXs/X3VDZv+YnNO9eSlrmJTfnb2cRuNkXlsjnO+5fLDBLy4Zw/Ezg38gQ6Nu5Mk7YX4z3xJN2CT0RERESkgqgAoALAPioASEUqzM1i2+8r2LJpFZHhkbQ47VIiq9dwO5aIiIiISMhQAUAFgH1UABAREREREam6VACAsAN3EREREREREZHKTgUAERERERERkRCgAoCIiIiIiIhICFABQERERERERCQEqAAgIiIiIiIiEgJUABAREREREREJASoAiIiIiIiIiIQAFQBEREREREREQoAKACIiIiIiIiIhQAUAERERERERkRCgAoCIiIiIiIhICFABQERERERERCQEqAAgIiIiIiIiEgJUABAREREREREJASoAiIiIiIiIiIQAFQBEREREREREQoAKACIiIiIiIiIhQAUAERERERERkRCgAoCIiIiIiIhICFABQERERERERCQEeBzHcTtDsPACuW6HEBERERERkQpRjRD/EDzC7QBBJKT/I4iIiIiIiEjVppNeERERERERkRCgAoCIiIiIiIhICFABQERERERERCQEqAAgIiIiIiIiEgJUABAREREREREJASF/FwBjTFdgHBAOTLLWPulypH2MMa8C3YHt1toWbufZyxjTEJgKHIXv9okvW2vHuZvKxxgTA3wJROP7//2WtXaUu6n+nzEmHFgKbLbWdnc7T0nGmPVAJlAMFFlr27kayM8YkwRMAloADnC1tfZbd1OBMcYAM0s0NQEetNY+41KkvzDG3Apci+89WwVcZa3NczeVjzHmZuA6wANMdPM9K+3vrDGmJr5/28bAeqC/tXZ3kGTrBzwEnAicZq1dGiS5/gtcAhQA6/D9f9sTJNkeBXri219tB6601m4JhmwlXrsD+C+QbK39MxiyGWMewvd7usPf7V5r7QfBkM3ffiMwEigC5ltr73Q7lzFmJmD8XZKAPdbaVoHMtZ9srYAXgRh879kN1trvgiRbS3+2eHx/cwdZazNcyFbq8a3b+4T95AqG/UFZ2VzfJ+wnW1DsE9wU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kvt0/yiAdtad2wCW9r6di2/4v4Pv1mfD9l4HHQTZXgde9ecrwLdP/dTtXNbaV4wxk/H9/3flJLasbIDFd1edCCAP320AA35ZYhnZ4oER/i5zgHvc+MS4rONbfNeNu7ZP2E+uaNzfH5SV7Vlc3ifsJ9s1BME+wU0hXwAQERERERERCQWhfgmAiIiIiIiISEhQAUBEREREREQkBKgAICIiIiIiIhICVAAQERERERERCQEqAIiIiIiIiIiEABUAREREqhBjTGNjTDDds11ERESChAoAIiIisl/GmAi3M4iIiMiR0w5dRESk6gk3xkwEOgCbgZ6AAV4EYoF1wNXW2t3GmM+BO6y1S40xtYGl1trGxpgrgYuBGCAO6BT4H0NERETKk0YAiIiIVD1Ngeettc2BPcClwFTgLmvtKcAqYNRBrOcMYIi1Vif/IiIiVYAKACIiIlXP79baFf7Hy4DjgCRr7Rf+tilAx4NYz0Jr7a6KCCgiIiKBpwKAiIhI1ZNf4nExkLSfvkX8//FAzN9eyy7PUCIiIuIuFQBERESqvnRgtzHmbP/zy4G9owHWA239j/sGOJeIiIgEkCYBFBERCQ1DgBeNMbHAb8BV/vangVnGmMuBT90KJyIiIhXP4ziO2xlEREREREREpILpEgARERERERGREKACgIiIiIiIiEgIUAFAREREREREJASoACAiIiIiIiISAlQAEBEREREREQkBKgCIiIiIiIiIhAAVAERERERERERCgAoAIiIiIiIiIiHg/wBJOCwKBZzz/wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1152x648 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图\n",
    "plt.figure(figsize=(16,9))\n",
    "pv_uv_daily['pv'].plot( color='r', label='PV Per Hour')\n",
    "plt.ylabel('访问量')\n",
    "plt.legend(loc='upper left')\n",
    "\n",
    "pv_uv_daily['uv'].plot( color='g', label='UV Per Hour', secondary_y=True) # 双坐标\n",
    "plt.ylabel('访问用户数')\n",
    "plt.legend(loc='upper center')\n",
    "plt.xticks(range(0,24), pv_daily.index)\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# 总结\n",
    "# 0-5点访问量小\n",
    "# pv波动大，在晚上"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>behavior_type</th>\n",
       "      <th>buy</th>\n",
       "      <th>cart</th>\n",
       "      <th>fav</th>\n",
       "      <th>pv</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hour</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5775</td>\n",
       "      <td>18055</td>\n",
       "      <td>10557</td>\n",
       "      <td>304815</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2364</td>\n",
       "      <td>8610</td>\n",
       "      <td>5170</td>\n",
       "      <td>142174</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1161</td>\n",
       "      <td>4619</td>\n",
       "      <td>2727</td>\n",
       "      <td>76939</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>801</td>\n",
       "      <td>3164</td>\n",
       "      <td>1800</td>\n",
       "      <td>52292</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>686</td>\n",
       "      <td>2875</td>\n",
       "      <td>1495</td>\n",
       "      <td>45082</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "behavior_type   buy   cart    fav      pv\n",
       "hour                                     \n",
       "0              5775  18055  10557  304815\n",
       "1              2364   8610   5170  142174\n",
       "2              1161   4619   2727   76939\n",
       "3               801   3164   1800   52292\n",
       "4               686   2875   1495   45082"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 不同用户的行为类型的pv分析\n",
    "\n",
    "pv_detail = pd.pivot_table(columns='behavior_type',index='hour',data=data_user, values='user_id', aggfunc=np.size)\n",
    "pv_detail.head(5) # 不同行为下，不同时段的pv数量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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ni99NPA4HaS5HLhbH9tbSPa49nie00Gay8Dd+rNOh0EwHCUUsWiORAntETRbQqf1pfAZDFtf+n4oEqV5z5/f/fUeP79HgP2G9wC+xDCgT3EW5w3rxIhSH4M66rpYEREREUk+CrVyQHAYBr50N750Nz0Kv33rm1AkSmVjiPKGIPXN4d2hr7l1lbJ5z5XL1o97hsU9A2QwEqUxGKE6Ev7fMb44XhvD43fhNPhSsHY7W4L0F8Hb7XSQleYiP+OL5xhfCtZfW5F2ffnnvS4nI3oXYQT37w0AEREREZFEU6iVg47b6aBddhrtsvfd/hwLu9t891hlbf5KMA5GLMIR6xvC59cDqdvpSMjev74MD9UKtSIiIiKS5BRqReLM5TBweZxkeNS6KyIiIiISa0kTak3THAPcBziBR/1+/+9tLklERERERESSnMPuAgBM03QCDwBjgTJgommaZfZWJSIiIiIiIskuKUItMAJY4/f7P/f7/UHg38AEm2sSERERERGRJJcsobYE2LTH15tbHxMRERERERHZq2S5pvabbuX6rRuhOJ0GPl9GnMr5/pxOR1LXJ7IvmsOSyjR/JZVp/kqq0xyWREuWULsZ6LzH152Ard/2A5GIRXV1Y1yL+j58voykrk9kXzSHJZVp/koq0/yVVKc5LLFQVJTd5ucmS6idC/QyTbMbsAU4BzjX3pJEREREREQk2SXFNbV+vz8MXA28BawAnvP7/cvsrUpERERERESSXbKs1OL3+6cD0+2uQ0RERERERFJHUqzUioiIiIiIiHwXCrUiIiIiIiKSshRqRUREREREJGUp1IqIiIiIiEjKUqgVERERERGRlKVQKyIiIiIiIilLoVZERERERERSlkKtiIiIiIiIpCyFWhEREREREUlZCrUiIiIiIiKSshRqRUREREREJGUZlmXZXcN3tQvYYHcRIiIiIiIiEnOlQFFbnpjKoVZEREREREQOcmo/FhERERERkZSlUCsiIiIiIiIpS6FWREREREREUpZCrYiIiIiIiKQshVoRERERERFJWS67CzgQmaY5BrgPcAKP+v3+39tckkibmaa5HqgDIkDY7/cfYmtBIvtgmubjwDhgp9/v79/6WD7wH6ArsB44y+/3V9lVo8je7GX+TgYup2X7QoBf+P3+6fZUKLJ3pml2BqYA7YEo8LDf779P52BJNK3Uxphpmk7gAWAsUAZMNE2zzN6qRPbbsX6/f7ACraSIJ4ExX3nsFuBdv9/fC3i39WuRZPQkX5+/AH9uPQ8PVqCVJBYGbvT7/X2BQ4GrWl/36hwsCaVQG3sjgDV+v/9zv98fBP4NTLC5JhGRA5bf758BVH7l4QnAU62fPwX8IKFFibTRXuavSErw+/3b/H7/gtbP64AVQAk6B0uCKdTGXgmwaY+vN7c+JpIqLOBt0zTnm6b5I7uLEfmO2vn9/m3Q8qILKLa5HpH9dbVpmotN03zcNM08u4sR2RfTNLsCQ4DZ6BwsCaZQG3vGNzxmJbwKke/uCL/fP5SWFvqrTNM82u6CREQOMg8CPYDBwDbgXnvLEfl2pmlmAVOB6/x+f63d9cjBR6E29jYDnff4uhOw1aZaRPab3+/f2vpxJ/ASLS31Iqlmh2maHQBaP+60uR6RNvP7/Tv8fn/E7/dHgUfQeViSmGmabloC7b/8fv+LrQ/rHCwJpVAbe3OBXqZpdjNN0wOcA7xic00ibWKaZqZpmtlffA6cCCy1tyqR7+QV4KLWzy8CptlYi8h++SIMtDoNnYclSZmmaQCPASv8fv+f9viWzsGSUIZlqTM21kzTPBn4Cy1b+jzu9/vvsrkkkTYxTbM7Lauz0LLl1zOav5LsTNN8FhgFFAI7gDuAl4HngC7ARuBMv9+vm/FI0tnL/B1FS+uxRct2KD/+4vpEkWRimuaRwEfAElq29AH4BS3X1eocLAmjUCsiIiIiIiIpS+3HIiIiIiIikrIUakVERERERCRlKdSKiIiIiIhIylKoFRERERERkZSlUCsiIiIiIiIpS6FWRETEJqZpdjVNU3uQioiIfA8KtSIiIgcQ0zRddtcgIiKSSPqHT0RExF5O0zQfAQ4HtgATABP4B5ABrAUu8fv9VaZpfgDc5Pf755mmWQjM8/v9XU3T/D/gFMALZAKjE/+fISIiYg+t1IqIiNirF/CA3+/vB1QDPwSmADf7/f6BwBLgjjYc5zDgIr/fr0ArIiIHFYVaERERe63z+/2ftX4+H+gB+Px+/4etjz0FHN2G47zj9/sr41GgiIhIMlOoFRERsVfzHp9HAN+3PDfM//7t9n7lew2xLEpERCRVKNSKiIgklxqgyjTNo1q/vgD4YtV2PTCs9fMzElyXiIhIUtKNokRERJLPRcA/TNPMAD4HLm59/I/Ac6ZpXgC8Z1dxIiIiycSwLMvuGkRERERERES+E7Ufi4iIiIiISMpSqBUREREREZGUpVArIiIiIiIiKUuhVkRERERERFKWQq2IiIiIiIikLIVaERERERERSVkKtSIiIiIiIpKyFGpFREREREQkZf0/0+awSWibRYMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1152x648 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(16,9))\n",
    "# sns.lineplot(data=pv_detail)\n",
    "sns.lineplot(data=pv_detail.iloc[:,:-1]) # 某个量太大（首页点击量），取出比较其他量的变化\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_id\n",
       "1000009    1\n",
       "1000023    1\n",
       "1000027    2\n",
       "1000031    1\n",
       "1000037    1\n",
       "dtype: int64"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  用户的消费分析\n",
    "data_buy = data_user[data_user.behavior_type =='buy'].groupby('user_id').size()\n",
    "data_buy.head() # 支付的用户的，每个用的的访问次数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    165572.000000\n",
       "mean          1.218286\n",
       "std           0.561882\n",
       "min           1.000000\n",
       "25%           1.000000\n",
       "50%           1.000000\n",
       "75%           1.000000\n",
       "max          21.000000\n",
       "dtype: float64"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_buy.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>time</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th>user_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2017-11-25</th>\n",
       "      <th>1000081</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1000118</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1000131</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1000496</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1000505</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    item_id  category_id  behavior_type  time  hour\n",
       "date       user_id                                                 \n",
       "2017-11-25 1000081        1            1              1     1     1\n",
       "           1000118        1            1              1     1     1\n",
       "           1000131        1            1              1     1     1\n",
       "           1000496        1            1              1     1     1\n",
       "           1000505        1            1              1     1     1"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 日 ARPPU 人均消费\n",
    "date_user_buy1 = data_user[data_user.behavior_type =='buy'].groupby(['date', 'user_id']).count()\n",
    "# 按日统计 消费总次数\n",
    "date_user_buy1 = pd.DataFrame(date_user_buy1)\n",
    "\n",
    "#修改字段名称"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>level_0</th>\n",
       "      <th>index</th>\n",
       "      <th>date</th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>total</th>\n",
       "      <th>time</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>1000081</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>1000118</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>1000131</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>1000496</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>1000505</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   level_0  index       date  user_id  item_id  category_id  total  time  hour\n",
       "0        0      0 2017-11-25  1000081        1            1      1     1     1\n",
       "1        1      1 2017-11-25  1000118        1            1      1     1     1\n",
       "2        2      2 2017-11-25  1000131        1            1      1     1     1\n",
       "3        3      3 2017-11-25  1000496        1            1      1     1     1\n",
       "4        4      4 2017-11-25  1000505        1            1      1     1     1"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "date_user_buy1 = date_user_buy1.reset_index().rename(columns={'behavior_type':'total'})\n",
    "\n",
    "date_user_buy1.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "(\"sum() got an unexpected keyword argument 'column'\", 'occurred at index level_0')",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-97-eceffff8b2ba>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdate_user_buy1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mcolumn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'total'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'date'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self, func, axis, broadcast, raw, reduce, result_type, args, **kwds)\u001b[0m\n\u001b[1;32m   6485\u001b[0m                          \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   6486\u001b[0m                          kwds=kwds)\n\u001b[0;32m-> 6487\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   6488\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   6489\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mapplymap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mget_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    149\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_raw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    150\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 151\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    152\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    153\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mapply_empty_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    255\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    256\u001b[0m         \u001b[0;31m# compute the result using the series generator\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 257\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_series_generator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    258\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    259\u001b[0m         \u001b[0;31m# wrap results\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_series_generator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    284\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    285\u001b[0m                 \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseries_gen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 286\u001b[0;31m                     \u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    287\u001b[0m                     \u001b[0mkeys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    288\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mf\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m     76\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     77\u001b[0m             \u001b[0;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 78\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     79\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     80\u001b[0m             \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mTypeError\u001b[0m: (\"sum() got an unexpected keyword argument 'column'\", 'occurred at index level_0')"
     ]
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date        user_id  behavior_type\n",
       "2017-11-25  100      pv               1\n",
       "            1000     cart             1\n",
       "                     pv               2\n",
       "            100000   pv               1\n",
       "            1000004  pv               1\n",
       "Name: operation, dtype: int64"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 消费总次数 / 消费人数\n",
    "date_user_buy2 = date_user_buy1.groupby('date').sum()['total'] / date_user_buy1.groupby('date').count()['total']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "      <th>operation</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5294</th>\n",
       "      <td>401872</td>\n",
       "      <td>3835410</td>\n",
       "      <td>3189162</td>\n",
       "      <td>pv</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5295</th>\n",
       "      <td>869441</td>\n",
       "      <td>2202119</td>\n",
       "      <td>1787510</td>\n",
       "      <td>pv</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5296</th>\n",
       "      <td>62408</td>\n",
       "      <td>1169047</td>\n",
       "      <td>1573465</td>\n",
       "      <td>pv</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5297</th>\n",
       "      <td>115848</td>\n",
       "      <td>4963287</td>\n",
       "      <td>2735466</td>\n",
       "      <td>pv</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5298</th>\n",
       "      <td>902909</td>\n",
       "      <td>429708</td>\n",
       "      <td>1787510</td>\n",
       "      <td>cart</td>\n",
       "      <td>2017-11-25 00:00:01</td>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     user_id  item_id category_id behavior_type                time  \\\n",
       "5294  401872  3835410     3189162            pv 2017-11-25 00:00:01   \n",
       "5295  869441  2202119     1787510            pv 2017-11-25 00:00:01   \n",
       "5296   62408  1169047     1573465            pv 2017-11-25 00:00:01   \n",
       "5297  115848  4963287     2735466            pv 2017-11-25 00:00:01   \n",
       "5298  902909   429708     1787510          cart 2017-11-25 00:00:01   \n",
       "\n",
       "           date  hour  operation  \n",
       "5294 2017-11-25     0          1  \n",
       "5295 2017-11-25     0          1  \n",
       "5296 2017-11-25     0          1  \n",
       "5297 2017-11-25     0          1  \n",
       "5298 2017-11-25     0          1  "
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 日 ARPU\n",
    "\n",
    "data_user['operation'] = 1\n",
    "data_user.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>time</th>\n",
       "      <th>hour</th>\n",
       "      <th>operation</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th>user_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2017-11-25</th>\n",
       "      <th>100</th>\n",
       "      <th>pv</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">1000</th>\n",
       "      <th>cart</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pv</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100000</th>\n",
       "      <th>pv</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1000004</th>\n",
       "      <th>pv</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                  item_id  category_id  time  hour  operation\n",
       "date       user_id behavior_type                                             \n",
       "2017-11-25 100     pv                   1            1     1     1          1\n",
       "           1000    cart                 1            1     1     1          1\n",
       "                   pv                   2            2     2     2          2\n",
       "           100000  pv                   1            1     1     1          1\n",
       "           1000004 pv                   1            1     1     1          1"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "date_user_buy3 = data_user.groupby(['date', 'user_id','behavior_type' ]).count() # 按日统计 人 不同行为 的次数\n",
    "date_user_buy3.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'Series' object has no attribute 'info'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-102-6651a5847017>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdate_user_buy3\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m__getattr__\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m   5065\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5066\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5067\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   5068\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5069\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: 'Series' object has no attribute 'info'"
     ]
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>user_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>item_id</th>\n",
       "      <th>category_id</th>\n",
       "      <th>time</th>\n",
       "      <th>hour</th>\n",
       "      <th>total</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>100</td>\n",
       "      <td>pv</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>1000</td>\n",
       "      <td>cart</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>1000</td>\n",
       "      <td>pv</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>100000</td>\n",
       "      <td>pv</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2017-11-25</td>\n",
       "      <td>1000004</td>\n",
       "      <td>pv</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        date  user_id behavior_type  item_id  category_id  time  hour  total\n",
       "0 2017-11-25      100            pv        1            1     1     1      1\n",
       "1 2017-11-25     1000          cart        1            1     1     1      1\n",
       "2 2017-11-25     1000            pv        2            2     2     2      2\n",
       "3 2017-11-25   100000            pv        1            1     1     1      1\n",
       "4 2017-11-25  1000004            pv        1            1     1     1      1"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "date_user_buy3 = pd.DataFrame(date_user_buy3).reset_index().rename(columns={'operation': 'total'})\n",
    "date_user_buy3.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date\n",
       "2017-11-25    0.050215\n",
       "2017-11-26    0.050344\n",
       "2017-11-27    0.057410\n",
       "2017-11-28    0.053767\n",
       "2017-11-29    0.055046\n",
       "2017-11-30    0.053722\n",
       "2017-12-01    0.049742\n",
       "2017-12-02    0.048097\n",
       "2017-12-03    0.048668\n",
       "dtype: float64"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 活跃用户的消费  每天的 付费率\n",
    "date_user_buy3.groupby('date').apply(lambda x: x[x.behavior_type == 'buy'].total.sum() / len(x.user_id.unique()))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# 每天的 付费率\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "date_user_buy4 = data_user[data_user.behavior_type =='buy'].groupby([ 'user_id','date','hour'])['operation'].sum() #\n",
    "date_user_buy4\n",
    "# 同一个时间段的消费分布\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.12467083806440703"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 复购率\n",
    "data_rebuy =  data_user[data_user.behavior_type =='buy'].groupby( 'user_id')['date'].apply(lambda x:len(x.unique())) # 每个用户每天的购买次数\n",
    "pecent = data_rebuy[data_rebuy >= 2 ].count() / data_rebuy.count() # > 2 表示有复购\n",
    "pecent"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# 复购的时间间隔\n",
    "date_day_buy = data_user[data_user.behavior_type =='buy'].groupby('user_id').date.apply(lambda x: x.sort_values().diff(1).dropna())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_id         \n",
       "1000027  9958530   4 days\n",
       "1000048  5511073   0 days\n",
       "         5511084   0 days\n",
       "         5551165   0 days\n",
       "         5551171   0 days\n",
       "         9637034   3 days\n",
       "1000069  5948546   1 days\n",
       "1000123  9441998   3 days\n",
       "100013   9970163   0 days\n",
       "1000201  6762483   0 days\n",
       "1000232  3480590   0 days\n",
       "1000240  6634847   3 days\n",
       "1000242  7413600   6 days\n",
       "1000275  7543427   1 days\n",
       "1000277  4163076   2 days\n",
       "         5702864   1 days\n",
       "         8106096   2 days\n",
       "1000349  4455536   0 days\n",
       "1000411  6532615   5 days\n",
       "         6533952   0 days\n",
       "1000463  5772284   0 days\n",
       "1000484  9606866   0 days\n",
       "1000488  6797386   0 days\n",
       "1000495  8291282   2 days\n",
       "1000496  1348224   1 days\n",
       "1000524  2345801   0 days\n",
       "1000568  4873846   2 days\n",
       "1000569  8991839   3 days\n",
       "1000578  9532536   3 days\n",
       "1000636  6186334   3 days\n",
       "                    ...  \n",
       "99904    3342788   1 days\n",
       "         5359495   2 days\n",
       "         5364683   0 days\n",
       "         5791499   0 days\n",
       "         7763445   2 days\n",
       "         7807645   0 days\n",
       "999174   5728347   2 days\n",
       "999204   7721016   7 days\n",
       "999214   5995705   0 days\n",
       "999220   9729998   3 days\n",
       "999333   8323238   2 days\n",
       "999334   6373925   3 days\n",
       "         9697447   2 days\n",
       "999364   5345964   2 days\n",
       "999449   5561182   3 days\n",
       "999497   3639414   3 days\n",
       "999537   8309984   2 days\n",
       "999571   8310564   3 days\n",
       "999619   5357200   3 days\n",
       "         8031294   2 days\n",
       "999629   2927709   0 days\n",
       "999637   4581530   0 days\n",
       "999704   8506270   5 days\n",
       "99973    2843314   2 days\n",
       "999748   8017471   5 days\n",
       "999751   5879489   0 days\n",
       "999815   9955890   8 days\n",
       "999835   9661967   4 days\n",
       "999939   524529    0 days\n",
       "         6641932   6 days\n",
       "Name: date, Length: 36142, dtype: timedelta64[ns]"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "date_day_buy.map(lambda x: x.days)\n",
    "date_day_buy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "behavior_type\n",
       "buy      201714\n",
       "cart     552894\n",
       "fav      288281\n",
       "pv      8966670\n",
       "dtype: int64"
      ]
     },
     "execution_count": 126,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 转化率，漏斗流失分析\n",
    "date_user_count = data_user.groupby('behavior_type').size()\n",
    "date_user_count # 各个行为的次数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "pv_all = data_user['user_id'].count() # 总行为次数\n",
    "\n",
    "# 浏览量- 点击量 / 浏览量\n",
    "# 点击量 - 购物车 / 点击量\n",
    "\n",
    "from datetime import datetime\n",
    "\n",
    "recent_buy_time= data_user[data_user.behavior_type =='buy'].groupby( 'user_id')['date'].apply(lambda  x:datetime(2017,12,5)-x.sort_values().iloc[-1]) # 参考日期-最后日期"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>recent</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1000009</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1000023</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1000027</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1000031</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1000037</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1000042</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1000046</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1000047</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1000048</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>100005</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1000052</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1000055</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>1000062</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>1000069</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>1000077</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>1000078</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>1000081</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>1000084</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>1000099</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>1000103</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>1000108</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>100011</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>1000110</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>1000115</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>1000118</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>1000122</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>1000123</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>1000126</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>1000127</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>100013</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165542</th>\n",
       "      <td>999794</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165543</th>\n",
       "      <td>9998</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165544</th>\n",
       "      <td>999808</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165545</th>\n",
       "      <td>999811</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165546</th>\n",
       "      <td>999815</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165547</th>\n",
       "      <td>999816</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165548</th>\n",
       "      <td>999830</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165549</th>\n",
       "      <td>999831</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165550</th>\n",
       "      <td>999835</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165551</th>\n",
       "      <td>999837</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165552</th>\n",
       "      <td>999840</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165553</th>\n",
       "      <td>999841</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165554</th>\n",
       "      <td>999843</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165555</th>\n",
       "      <td>999863</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165556</th>\n",
       "      <td>999864</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165557</th>\n",
       "      <td>999876</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165558</th>\n",
       "      <td>999883</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165559</th>\n",
       "      <td>999894</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165560</th>\n",
       "      <td>999898</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165561</th>\n",
       "      <td>999903</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165562</th>\n",
       "      <td>999905</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165563</th>\n",
       "      <td>999921</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165564</th>\n",
       "      <td>999939</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165565</th>\n",
       "      <td>99995</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165566</th>\n",
       "      <td>999958</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165567</th>\n",
       "      <td>999969</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165568</th>\n",
       "      <td>999977</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165569</th>\n",
       "      <td>999979</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165570</th>\n",
       "      <td>999986</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165571</th>\n",
       "      <td>999999</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>165572 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id  recent\n",
       "0       1000009       2\n",
       "1       1000023       5\n",
       "2       1000027       2\n",
       "3       1000031       3\n",
       "4       1000037       4\n",
       "5       1000042       5\n",
       "6       1000046       6\n",
       "7       1000047       5\n",
       "8       1000048       2\n",
       "9        100005       2\n",
       "10      1000052       6\n",
       "11      1000055       4\n",
       "12      1000062       6\n",
       "13      1000069       5\n",
       "14      1000077       2\n",
       "15      1000078       8\n",
       "16      1000081      10\n",
       "17      1000084       5\n",
       "18      1000099       5\n",
       "19      1000103       2\n",
       "20      1000108       3\n",
       "21       100011       6\n",
       "22      1000110       5\n",
       "23      1000115       3\n",
       "24      1000118      10\n",
       "25      1000122       4\n",
       "26      1000123       2\n",
       "27      1000126       8\n",
       "28      1000127       4\n",
       "29       100013       2\n",
       "...         ...     ...\n",
       "165542   999794      10\n",
       "165543     9998       5\n",
       "165544   999808       2\n",
       "165545   999811      10\n",
       "165546   999815       2\n",
       "165547   999816       8\n",
       "165548   999830      10\n",
       "165549   999831       4\n",
       "165550   999835       2\n",
       "165551   999837       7\n",
       "165552   999840       5\n",
       "165553   999841      10\n",
       "165554   999843       5\n",
       "165555   999863       3\n",
       "165556   999864       2\n",
       "165557   999876       4\n",
       "165558   999883       8\n",
       "165559   999894       3\n",
       "165560   999898      10\n",
       "165561   999903       3\n",
       "165562   999905       5\n",
       "165563   999921       9\n",
       "165564   999939       4\n",
       "165565    99995       2\n",
       "165566   999958       2\n",
       "165567   999969       4\n",
       "165568   999977       4\n",
       "165569   999979       4\n",
       "165570   999986       7\n",
       "165571   999999       4\n",
       "\n",
       "[165572 rows x 2 columns]"
      ]
     },
     "execution_count": 132,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recent_buy_time = recent_buy_time.reset_index().rename(columns={'date':'recent'})\n",
    "recent_buy_time.recent = recent_buy_time.recent.apply(lambda x:x.days)\n",
    "recent_buy_time.head() # 最近一次购买时间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>freq</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1000009</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1000023</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1000027</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1000031</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1000037</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id  freq\n",
       "0  1000009     1\n",
       "1  1000023     1\n",
       "2  1000027     2\n",
       "3  1000031     1\n",
       "4  1000037     1"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计每个用户的消费频率\n",
    "buy_freq = data_user[data_user.behavior_type =='buy'].groupby( 'user_id').date.count()\n",
    "buy_freq = buy_freq.reset_index().rename(columns={'date':'freq'})\n",
    "buy_freq.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>recent</th>\n",
       "      <th>freq</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1000009</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1000023</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1000027</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1000031</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1000037</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id  recent  freq\n",
       "0  1000009       2     1\n",
       "1  1000023       5     1\n",
       "2  1000027       2     2\n",
       "3  1000031       3     1\n",
       "4  1000037       4     1"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rfm = pd.merge(recent_buy_time, buy_freq, left_on='user_id', right_on='user_id')\n",
    "rfm.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>recent</th>\n",
       "      <th>freq</th>\n",
       "      <th>recent_value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1000009</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1000023</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1000027</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1000031</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1000037</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id  recent  freq recent_value\n",
       "0  1000009       2     1            2\n",
       "1  1000023       5     1            2\n",
       "2  1000027       2     2            2\n",
       "3  1000031       3     1            2\n",
       "4  1000037       4     1            2"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>recent</th>\n",
       "      <th>freq</th>\n",
       "      <th>recent_value</th>\n",
       "      <th>freq_value</th>\n",
       "      <th>rfm</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1000009</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1000023</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1000027</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1000031</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1000037</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id  recent  freq recent_value freq_value rfm\n",
       "0  1000009       2     1            2          1  21\n",
       "1  1000023       5     1            2          1  21\n",
       "2  1000027       2     2            2          2  22\n",
       "3  1000031       3     1            2          1  21\n",
       "4  1000037       4     1            2          1  21"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 分析频率 和 间隔 进行等评分段\n",
    "\n",
    "rfm['recent_value'] = pd.qcut(rfm.recent, 2, labels=['2','1'])\n",
    "\n",
    "rfm['freq_value'] = pd.qcut(rfm.freq.rank(method='first'), 2, labels=['1', '2'])\n",
    "\n",
    "rfm['rfm'] = rfm['recent_value'].str.cat(rfm['freq_value'] )\n",
    "\n",
    "rfm.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}